nmap PortScannerError,找不到nmap

时间:2018-09-26 11:33:01

标签: python nmap

不确定我缺少什么。我正在尝试导入nmap模块并使用nmap.PortScanner()。我正在使用Linux。当我在终端上运行程序时,我得到:

File "/usr/local/lib/python2.7/dist-packages/nmap/nmap.py", line 137, in __init__
raise PortScannerError('nmap program was not found in path')
nmap.nmap.PortScannerError: 'nmap program was not found in path'

当我跑步时:

which nmap

我得到:

/usr/bin/nmap

执行时

nmap --version

我得到:

Nmap version 7.60 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.0g nmap-libssh2-1.8.0 libz-1.2.8 libpcre-8.39 libpcap-1.8.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

2 个答案:

答案 0 :(得分:0)

您需要在“ /usr/local/lib/python2.7/dist-packages/nmap/nmap.py”中编辑第137行 然后包含您的nmap目录:“ usr / bin / nmap”。

此错误是因为“ nmap.py”无法确定nmap二进制目录。

祝你好运

答案 1 :(得分:0)

道歉,回答了旧问题,但也遇到了同样的问题,并通过更改nmap_search_path文件中的nmap.py解决了这个问题。

在nmap.py中,__init__函数将初始化PortScanner模块,它具有一些默认搜索路径以检测系统上的nmapnmap版本。如果在路径中找不到PortScannerError,则可能会引发nmap异常。

对于我检查过的python-nmap-0.6.1版本,在nmap.py文件中有以下代码行。

def __init__(self, nmap_search_path=('nmap', '/usr/bin/nmap', '/usr/local/bin/nmap', '/sw/bin/nmap', '/opt/local/bin/nmap')):