如何找出networking上所有机器的MAC地址

有没有一些简单的方法来找出我的networking上的所有计算机的MAC地址,而不是做一个SSH到每个和ifconfig | grep HWaddr ifconfig | grep HWaddr如果networking上有300台机器,我真的需要一些简单的解决scheme。

    您可以使用nmap来运行ping扫描。

     nmap -sP 192.168.254.* Starting Nmap 5.00 ( http://nmap.org ) at 2011-03-09 11:32 GMT Host xyzzy.lan (192.168.254.189) is up (0.00022s latency). MAC Address: 00:0C:29:5B:A5:E0 (VMware) Host plugh.lan (192.168.254.196) is up (0.00014s latency). MAC Address: 00:0C:29:2E:78:F1 (VMware) Host foo.lan (192.168.254.200) is up. Host bar.lan (192.168.254.207) is up (0.00013s latency). MAC Address: 00:0C:29:2D:94:A0 (VMware) Nmap done: 256 IP addresses (4 hosts up) scanned in 3.41 seconds 

    编辑:

    一个sed脚本来过滤输出到IP – > MAC – 把它放在一个文件中。

     /^Host.*latency.*/{ $!N /MAC Address/{ s/.*(\(.*\)) .*MAC Address: \(.*\) .*/\1 -> \2/ } } /[Nn]map/d s/^Host .*is up/& but MAC Address cannot be found/ 

    像这样使用它

     nmap -sP 192.168.254.0/20 | sed -f sedscript 192.168.254.189 -> 00:0C:29:5B:A5:E0 192.168.254.196 -> 00:0C:29:2E:78:F1 Host foo.lan (192.168.254.200) is up but MAC Address cannot be found. 192.168.254.207 -> 00:0C:29:2D:94:A0 

    使用nmap。 重要的是以root身份运行它,以便获得MAC地址。 例:

     sudo nmap -sP 192.168.1.0/24 

    将扫描192.168.1.1 – 192.168.1.255。 在wiki上查找CIDR表示法,如果您不熟悉这个子网表示法。

    你应该可以从任何最新的Linux发行版的回购中获得nmap,例如

     sudo apt-get install nmap 

    要么

     sudo yum install nmap 

    我的networking输出示例:

     Host 192.168.1.1 is up (0.0069s latency). MAC Address: 00:0D:54:9B:D8:F4 (3Com) Host 192.168.1.78 is up (0.0068s latency). MAC Address: 00:0C:29:BC:3D:1C (VMware) Host 192.168.1.91 is up (0.0038s latency). MAC Address: 00:0C:29:8A:F4:A3 (VMware) Host 192.168.1.92 is up (0.0039s latency). MAC Address: 00:0C:29:65:60:5F (VMware) Host 192.168.1.158 is up (0.033s latency). MAC Address: 00:0C:29:82:24:EA (VMware) Host 192.168.1.186 is up (0.0024s latency). MAC Address: 00:0C:29:3E:26:1F (VMware) Host 192.168.1.190 is up (0.0066s latency). 

    只要你从同一个网段的主机运行这个命令, nmap会报告每个主机发现的所有MAC地址。

    例如:

     sudo nmap 192.168.1.0/24 -sP Starting Nmap 4.76 ( http://nmap.org ) at 2011-03-09 06:29 EST Host old.net (192.168.1.1) appears to be up. MAC Address: 00:18:39:C5:A1:DC (Cisco-Linksys) 

    对于MAC地址,我需要在我的Ubuntu的盒子上。 对于单个主机来说,一个简单的方法就是ping它,然后用arp -a查看arp表,如果只想使用通常包含在初始安装分发中的命令:

     arp -a | grep -v incomplete foo.net (192.168.1.145) at 00:0d:4b:6a:2c:cb [ether] on eth0 

    试试这个命令:

     arp-scan --interface=eth0 192.168.1.0/24 

    根据您的局域网拓扑,最好的办法是在交换机上显示MAC地址表。

    例如,如果您的交换机基础设施是思科,您可以尝试一下

     sh mac address-table 

    在每个交换机上。

    如果您有许多交换机,则可以通过使用SNMP自动执行此任务。

    另一个选项(再次)取决于您的拓扑和您的networking设备的types,您也可以尝试获取您的设备的MAC地址在路由器上显示ARP表。

    使用这两种方法之一,您还将获得连接到您的networking基础设施的任何设备的MAC地址列表:PC,打印机,接入点等。在第一种情况下,甚至是没有IP地址的设备。 这可能也可能不是你想要的,但它可能值得一试。

    也许arp-scan也是一个选项:

    请参阅此处的示例: Arp-scan用户指南

    既然你提到了你的networking中的机器,你也可以使用这个简短的:

     nmap -p 22 10.100.10.0/24 >/dev/null ; arp -a 

    您可以使用名为SIW的程序,它是免费的,并扫描不需要权限的networking或参数。

    url: http : //www.gtopala.com/

    可用.exe或完整安装。