有没有一些简单的方法来找出我的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或完整安装。