我首先在 PyCharm 中安装了 nmap 模块,但收到了许多其他关于我的 nmap.PortScanner 函数的错误。
因此,我卸载了nmap并安装了python-nmap。
现在,我在执行命令时遇到问题:
import nmap
ns = nmap.PortScanner
ns.scan('My.IP.Add.ress', '1-1024', '-v')
print(ns.scaninfo())
我在第二行收到错误消息: 属性错误:“str”对象没有属性“_nmap_path”
但是,查看所有示例,可以准确地显示这些代码行。 有人可以解释一下发生了什么吗?
我的编辑器还为 ns.scaninfo() 显示一条警告,提示参数“self”未填充。再说一次,这不是例子所显示的。我对此感到非常困惑。
一如既往,非常感谢您的帮助!
最佳答案
(自从发布 my comment 以来,我确信这是根本原因,因此发布作为答案。)
第二行缺少一些括号。它应该是:
ns = nmap.PortScanner()
事实上,您正在存储 PortScanner
类(class) ns
,而不是该类的对象。这意味着当您调用 ns.scan
它的第一个参数(预期为 self
,即具有 PortScanner
属性的 _nmap_path
对象)实际上是一个字符串,它没有该属性。编辑器关于 self
的警告背后也有同样的原因。参数也未填写。
关于python - 为什么 Python-NMAP 模块中的 .scan 函数显示 'str' 属性错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53092781/