首页 > 解决方案 > 使用 python-nmap 确定主机的操作系统

问题描述

在 Python 3.4 之前,您可以使用 Python 确定目标的操作系统,如下所示:

import nmap

nm = nmap.PortScanner()
scanner = nm.scan(IP, port, arguments='-O')
print(scanner['scan'][IP]['osmatch'])

我正在使用 Python 3.6 并且osmatch没有返回任何内容。有没有办法解决这个问题?

标签: nmappython

解决方案


我已经用 Python 3.7.6 测试了你的脚本:

import nmap

nm = nmap.PortScanner()
scanner = nm.scan(IP, port, arguments='-O')
print(scanner['scan'][IP]['osmatch'])

它运作良好。您遇到的问题是,由于某些原因,扫描未检索到任何结果,并且结果对象为空,但如果您在不同的主机上再次尝试,它应该可以工作。


推荐阅读