为什么输出中只显示端口版本?
我在用Python自动化进行NMAP端口扫描。执行脚本的时候,一切都很顺利,除了端口的版本信息没有显示。
这是代码:
import nmap
nm = nmap.PortScanner()
targetip = 127.0.0.1
firstport = 1
lastport = 1000
for i in range(firstport, lastport + 1):
portinfos = nm.scan(targetip, str(i), arguments='-sV')
state = portinfos['scan'][targetip]['tcp'][i]['state']
service = portinfos['scan'][targetip]['tcp'][i]['name']
version = portinfos['scan'][targetip]['tcp'][i]['version']
if state == 'open':
print(f'\nPort: {i} \nService: {service} \nVersion: {version} \nStatus: {state}\n')
输出结果:
Port: 80
Service: http
Version:
Status: open
======================================================================
从输出结果来看,所有信息都打印出来了,唯独端口的版本信息(比如ProFTPd)没有显示。
当我手动执行NMAP命令时,一切正常。
我在网上找不到关于这个问题的任何信息,无论是论坛还是库的文档页面。
有没有人知道我哪里做错了,或者怎么解决这个问题?
有用的信息:VSCode 1.87.2;Python 3.9.0;python-nmap 0.7.1
0 个回答
暂无回答