网络通信 频道

巧取主机MAC地址

作为中小型局域网的管理员,获取上网计算机的MAC地址是非常必要的,计算机中网卡的媒体访问控制地址(MAC地址)是它在出厂时固化的一个硬件地址,由于它具有标识一台计算机的惟一性,所以网管可以通过用户名称、IP地址和MAC地址的对照表,查找出盗用IP地址或存在IP地址冲突的计算机,从而排除网络上的故障。对于使用高端设备的局域网来说,这个问题就简单了,交换机可以通过自学习,获得与它连接的计算机的IP地址和MAC地址。目前的一些常用网络小工具也可以搜索出局域网中计算机的名称、IP地址和MAC地址等信息,但这些软件都是对同一网段才起作用。其实我们完全可以在不使用第三方工具软件的条件下,利用Windows系统自带的程序来查看本地机、同一网段或局域网中不同虚拟网内的计算机的MAC地址。

获取本机的MAC地址
我们可以通过Windows系统自带的命令行程序ipconfig来查看本地机的MAC地址,此程序将显示所有当前的TCP/IP网络配置值、刷新动态主机配置协议(DHCP)和域名系统(DNS)设置。在不带参数的情况下ipconfig只显示IP地址、子网掩码和各个适配器的默认网关值,如果要显示所有适配器的完整TCP/IP配置信息,就必须使用参数“/all”。进入Windows系统的命令提示符方式,键入命令“ipconfig /all”并回车。我们可以看到对应于网卡的一组值,其中包括了“Physical Address”物理地址一项(见图1),它后面显示的数值由六个字节组成,这些字节用十六进制记数法表示并且用连字符隔开,即是此网卡的MAC地址。

图1


在Windows Me、Windows 98和Windows 95系统中还有与ipconfig功能相同但更加直观的图形界面程序winipcfg。我们可以单击“开始”→“运行”,在“运行”对话框中,输入“winipcfg”后回车,即打开IP配置的信息窗口,想要查看网络适配器的地址信息,可从“Ethernet适配器信息”列表中选择相应的适配器,“适配器地址”显示的即为网卡的MAC地址(见图2)。

图2

获取同一网段中计算机的MAC地址
如果我们要想获取相同网段中远程计算机的MAC地址,可以使用一个网络命令ARP。它可以显示和修改“地址解析协议(ARP)”缓存中的项目,在ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的以太网或令牌环的物理地址。由于IP地址和对应的物理地址列表是储存在ARP缓存中的,如果终止TCP/IP协议后再启动,这些列表项会被删除,如果您从未连接过某台计算机,这个ARP缓存中列表中也不会有它的物理地址。所以当我们要获取相应远程计算机的ARP信息时,首先需要ping通它,然后才能取得ARP信息。
进入计算机的命令提示符模式,先使用ping命令,ping通所有需要获取MAC地址的远程计算机,然后键入“arp -a”命令(见图3)。

图3


从图3中我们可以看到,ARP缓存列表中显示了计算机的IP地址和MAC地址的对应关系,一目了然。

获取不同虚网中计算机的MAC地址
如果要获得不同虚网中计算机的MAC地址,ARP命令就起不了作用了,这时需要使用另外一个Windows自带的网络命令——nbtstat。该命令显示了本地计算机和远程计算机的基于TCP/IP协议的NetBIOS统计资料、NetBIOS名称表和NetBIOS名称缓存。nbtstat命令可以带许多参数,在此我们只使用“-A IP address”这个参数,此参数显示了远程计算机的NetBIOS名称表,其远程计算机由参数“IP address”中输入的IP地址指定。
我们要获取不同网段,IP地址为172.16.68.12计算机的MAC地址,可以在命令提示符模式下,输入“nbtsta- 172.16.68.12”得到的结果(见图4)。

图4


从图中我们可以看到,在结果的最后一行显示有“MAC Address = 00-08-C7-0D-E0-EA”,这正是我们所需要的远程计算机的MAC地址。注意nbtstat命令行参数区分大小写,此处的参数A不能使用小写字符。

文章转载地址:http://www.365master.com/kt_article_show.php?article_id=537&categ_code=10151002

0
相关文章