使用Python Nmap获取移动设备网络信息
我刚开始学习使用Nmap工具。在Ubuntu 12.04上,我用的是Python 2.7.5,并且使用了python-nmap这个库。
我尝试了一个方法来获取网络中设备的总数,代码如下:
import nmap
nm = nmap.PortScanner()
data = nm.scan(hosts="192.168.2.1/24", arguments="-sP")
print data['nmap']['scanstats']['uphosts']
不过,这段代码只能统计256个设备的数量。这就有个问题了。如果设备数量超过256个,IP地址的格式应该是什么呢?因为/24这个格式最多只能检查到256个设备。
我还尝试在上面的程序中添加arguments="-O",这样一来,代码就需要管理员权限才能运行,所以我必须用sudo python device.py来执行这个程序。
请问,Nmap有没有办法只识别网络中连接的手机设备呢?
1 个回答
1
结果在 data['scan']
里面。如果你想获取被认为是“在线”的IP地址列表,可以试试这个:
[ip for ip, result in data['scan'].iteritems() if result['status']['state'] == 'up']