【问题标题】:python3-nmap host discovery no MAC address/hostnamepython3-nmap主机发现没有MAC地址/主机名
【发布时间】: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


    【解决方案1】:

    尝试添加: “network.require_root(required=True) 之前” "结果 = network.scan_top_ports("192.168.68.126", args="-sn")"

    【讨论】:

      猜你喜欢
      • 2023-02-15
      • 1970-01-01
      • 2013-12-04
      • 2011-08-21
      • 2022-06-14
      • 1970-01-01
      • 2017-12-04
      • 2018-12-04
      • 2021-10-02
      相关资源
      最近更新 更多