为什么输出中只显示端口版本?

2 投票
0 回答
39 浏览
提问于 2025-04-12 02:53

我在用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 个回答

暂无回答

撰写回答