如何使用 python-nmap 获取机器的 MAC 地址?
我正在使用 python-nmap 扫描我的本地网络,我可以获得几个系统的 ip,但不能获得它们的 MAC 地址。
如何获取扫描结果中的 MAC 地址?
nm = nmap.PortScanner()
a=nm.scan(hosts=cidr2, arguments='-sP')
for k,v in a['scan'].iteritems():
if str(v['status']['state']) == 'up':
number_thread += 1
print str(v)
try: print str(v['addresses']['ipv4']) + ' => ' + str(v['addresses']['mac'])
except: print str(v['addresses']['ipv4'])
答案1
我设法使用以下代码获取同一网络(我自己的本地网络)上的系统的 MAC 地址。
而且你必须以 root 身份运行此代码(使用sudo
)
#!/usr/bin/env python
import nmap
nm = nmap.PortScanner()
cidr2='192.168.1.99/24'
a=nm.scan(hosts=cidr2, arguments='-sP')
for k,v in a['scan'].iteritems():
if str(v['status']['state']) == 'up':
print str(v)
try: print str(v['addresses']['ipv4']) + ' => ' + str(v['addresses']['mac'])
except: print str(v['addresses']['ipv4'])