【发布时间】:2020-12-16 14:30:16
【问题描述】:
我正在使用 nmap3 python 库在 python 脚本中进行 nmap 扫描,并将它们放入 JSON 文件中。 (https://pypi.org/project/python3-nmap/)
这很好用,但问题是由于某种原因主机名和 MAC 地址发现不起作用。
nmap3 python(脚本以root身份执行):
network = nmap3.Nmap()
results = network.scan_top_ports("192.168.68.126", args="-sn")
with open(Network_discover, 'w') as json_file:
json.dump(results, json_file, indent=4)*
结果(在 JSON 文件中):
{
"192.168.68.126": {
"osmatch": {},
"ports": [],
"hostname": [], ///no hostname
"macaddress": null, ///macaddress "null"
"state": {
"state": "up",
"reason": "arp-response",
"reason_ttl": "0"
}
}
这很奇怪,因为主机名/MAC 发现确实适用于 Linux 的 nmap 应用程序,但也适用于 python 的经典 nmap 库(5 年没有更新了)。
所需输出的示例:
sudo nmap -sn "192.168.68.126"
Starting Nmap ....................
Nmap scan report for 192.168.68.126
Host is up .........
**MAC Address: 01:23:34:67:89:00 (Synology Incorporated)** //the line I'm talking about
Nmap done: ...........
我正在以 root 身份执行 python 脚本,因此权限应该不是问题(其他 root 所需的工具,如操作系统检测也可以正常工作)。
更新:python3-nmap 库的代码中似乎存在错误。出于某种原因,主机发现不是以 root 身份执行的。我想我正在接收来自
的输出nmap -sn "192.168.68.126"
而输出来自
sudo nmap -sn "192.168.68.126"
是必要的。
仍然无法解决问题
【问题讨论】:
标签: python-3.x networking raspbian nmap