我一直在寻找如何解决这个Python问题的答案:
AttributeError:模块“nmap”没有属性“PortScanner”
我想了解有关端口扫描的更多信息,但我什至无法在我正在使用的 Visual Studio Code 上安装该模块。我已经尝试了我和很多人能想到的一切:
目前还没有成功..
这是我的代码:
import nmap
nm = nmap.PortScanner()
nm.scan('127.0.0.1', '22-443')
和输出:
/usr/local/bin/python3 /Users
/user2132/Desktop/PYTHONProjects/portscannning.py
Traceback (most recent call last):
File "/Users/user2132/Desktop/PYTHONProjects/portscannning.py", line 3, in <module>
nm = nmap.PortScanner()
AttributeError: module 'nmap' has no attribute 'PortScanner'
接下来我可以尝试什么?
附注我使用的是MacOS
我能够重现该错误。问题出在
nmap
库上。 pip install nmap
安装nmap python library
,但python-nmap
需要nmap binary
,而且nmap
python库与python-nmap
冲突,因为它们共享相同的模块名称。正确的nmap
可以从Nmap的官方下载页面安装
pip uninstall nmap
pip uninstall python-nmap
python-nmap
pip install python-nmap
nmap
是否已安装到您的系统中which nmap
前往Nmap官方下载页面,下载并安装适合您操作系统的nmap。
请确保在安装过程中选择
add to PATH
选项。
在终端中使用
nmap
命令检查 which nmap
安装。
之后您可以检查
PortScanner
是否在nmap
中。
import nmap
dir(nmap)
退货
['ET',
'PortScanner', <=== IS HERE!
'PortScannerAsync',
'PortScannerError',
'PortScannerHostDict',
'PortScannerTimeout',
'PortScannerYield',
'Process',
'__author__',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__last_modification__',
'__loader__',
'__name__',
'__package__',
'__path__',
'__spec__',
'__version__',
'convert_nmap_output_to_encoding',
'csv',
'io',
'nmap',
'os',
're',
'shlex',
'subprocess',
'sys']
最终测试
import nmap
nm = nmap.PortScanner()
nm.scan('127.0.0.1', '22-443')
退货
{'nmap': {'command_line': 'nmap -oX - -p 22-443 -sV 127.0.0.1',
'scaninfo': {'tcp': {'method': 'syn', 'services': '22-443'}},
'scanstats': {'timestr': 'Tue Mar 29 15:07:02 2022',
'elapsed': '7.82',
'uphosts': '1',
'downhosts': '0',
'totalhosts': '1'}},
...
对我不起作用。您提供的步骤过程不起作用...我遇到了同样的问题。我认为 Nmap/python 模块要么仍未正确安装,要么是编译器......