You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python开发Network scanner项目nmap相关代码运行报错求解决

Python网络扫描器报错排查解决

1. Portscanner属性问题修复

python-nmap库对外暴露的端口扫描类名为PortScanner(第二个单词首字母S大写),你代码中拼写为Portscanner(s小写),属于拼写错误,直接修改即可解决属性不存在报错。

2. 必须修正的代码缩进错误

你现有代码的缩进逻辑完全错误,会触发变量未定义、代码提前执行等问题:

  • networkscanner方法内的扫描逻辑全部写在了方法外部,无法访问方法内定义的network局部变量
  • if __name__ == "__main__" 入口代码被包含在类定义内部,不会正常触发执行
    按照下方修正后的代码调整缩进即可。

3. 确认系统级nmap依赖安装

python-nmap只是nmap工具的Python封装层,必须先安装系统原生nmap程序才能正常调用:

  • Windows:访问nmap官网下载安装包安装,安装后需要将nmap路径加入系统环境变量
  • MacOS:执行brew install nmap
  • Debian/Ubuntu:执行sudo apt install nmap
  • CentOS/RHEL:执行sudo dnf install nmap

修正后可运行完整代码

import nmap
class network(object):
    def __init__(self):
        ip = input("Enter default IP address 10.10.1.1 10.10.0.1: ")
        self.ip = ip

    def networkscanner(self):
        if len(self.ip) == 0:
            network = '10.10.1.1/24'
        else:
            network = self.ip + '/24'

        print("Start scanning please wait....")

        nm = nmap.PortScanner()
        nm.scan(hosts=network, arguments='-sn')
        hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
        for host, status in hosts_list:
            print("host\t{}".format(host))

if __name__ == "__main__":
    D = network()
    D.networkscanner()

内容的提问来源于stack exchange,提问作者GhostwhiteActualCompilers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:57:04