我首先在PyCharm中安装了nmap模块,但收到了与我的nmap.PortScanner函数一样的错误消息。
因此,我卸载了nmap并安装了 python-nmap 。
现在,我在执行命令时遇到了问题:
import nmap
ns = nmap.PortScanner
ns.scan('My.IP.Add.ress', '1-1024', '-v')
print(ns.scaninfo())
第二行出现错误消息: AttributeError:“ str”对象没有属性“ _nmap_path”
但是,看着所有这些示例,它们恰好显示了这些代码行。 有人可以解释发生了什么吗?
我的编辑器还为ns.scaninfo()显示一条警告,指出未填充参数“ self”。同样,这不是示例所显示的。我对此感到非常困惑。
一如既往,非常感谢您的帮助!
答案 0 :(得分:2)
(自发布my comment起,我已经确信这是根本原因,因此请以发布为答案。)
第二行缺少一些括号。它应显示为:
ns = nmap.PortScanner()
实际上,您正在将PortScanner
类存储在ns
中,而不是该类的对象。这意味着,当您调用ns.scan
的第一个参数(预期为self
时,带有PortScanner
属性的_nmap_path
对象)实际上是一个字符串, t具有属性。出于同样的原因,您的编辑器也警告self
参数也未填充。