('未找到Nmap',<class'nmap.nmap.PortScannerError'>)

Zer*_*ays 4 python

问题出在哪儿?

import nmap
Run Code Online (Sandbox Code Playgroud)

我安装了nmap和python,当我使用时import nmap没有任何问题.但使用时:

nmap.PortScanner()
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    nmap.PortScanner()
  File "./nmap/nmap.py", line 153, in __init__
    raise PortScannerError('nmap program was not found in path. PATH is:{0}'.format(os.getenv('PATH')))
nmap.nmap.PortScannerError: 'nmap program was not found in path. PATH is : /usr/lib    /lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:    /usr/local/games'"
Run Code Online (Sandbox Code Playgroud)

Cha*_* Mx 9

对于Windows用户:

我建议首先关闭所有终端和IDLE或当前尝试运行脚本时打开的任何其他窗口.

接下来,打开命令行并键入

pip uninstall python-nmap
Run Code Online (Sandbox Code Playgroud)

如果您不确定当前系统上是否安装了Nmap二进制文件,请进行简单搜索

nmap
Run Code Online (Sandbox Code Playgroud)

从你的开始菜单.如果已安装,请继续执行下一步,如果没有,请转到Nmap的官方下载页面

下载windows自安装并运行它.记录要安装的目录.

转到该目录.对我来说是

C:\Program Files (x86)\Nmap

打开系统中常见的环境变量编辑器

My PC > System Information > Advance settings > Environment Variables
Run Code Online (Sandbox Code Playgroud)

或者右键单击

我的PC或我的电脑或任何你的电脑被调用并选择属性,然后在高级选项卡底部提前设置环境变量

选择Path两者YouSystem

按下Edit并进入full path to your Nmap director

例如 ;C:\Program Files (x86)\Nmap\

按确定并退出编辑器.

现在返回到命令行并输入:pip install python-nmap 允许它安装然后重新启动ide并再次测试代码.


dio*_*ovk 7

python-nmap似乎依赖于nmap,这是进行实际网络扫描和审计的二进制文件.

您可以$PATH使用以下命令检查终端是否在您的nmap中:

 which nmap
Run Code Online (Sandbox Code Playgroud)

Debian的样

您可以使用以下命令在类似debian的发行版中安装nmap:

apt-get install nmap
Run Code Online (Sandbox Code Playgroud)

Arch linux:

pacman -Sy nmap
Run Code Online (Sandbox Code Playgroud)

已安装 nmap

如果您确定nmap已安装二进制文件,但您认为它不在您的中$PATH,则可能必须将安装了nmap的目录添加到您的$PATH.

为此,请编辑.bashrc用户目录中的文件,或/etc/bashrc(将为所有用户更改)并添加以下内容:

export PATH="$PATH:/usr/local/nmap/bin"
Run Code Online (Sandbox Code Playgroud)

但要更改/usr/local/nmap/bin安装nmap二进制文件的目录.更改文件后,请务必打开新的shell会话,或键入exec bash以刷新它.

您还必须确保它具有执行权限(chmod +x <file>).

执行时:

nmap --version
Run Code Online (Sandbox Code Playgroud)

你应该看到这样的东西:

Nmap version 6.46 ( http://nmap.org )
Platform: i686-pc-linux-gnu
Compiled with: liblua-5.2.3 openssl-1.0.1g libpcre-8.34 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
Run Code Online (Sandbox Code Playgroud)

如果你这样做,nmap安装在你的$PATH.