windows下python-nmap运行过程中出现的问题及解决办法

本来是在Linux下用python2.7写的一个ftp用户名和密码自动验证的脚本,后来想想准备移植到windows下,然后就有了这篇文章。

因为是临时准备移植到windows下,所有在官网下了Python的最新版本2.7.8。Namp也是下了最新版本6.47。至于Python在windows下环境的配置,可以百度找到文章,在此不再累赘。

python-nmap官网推荐python2.x下使用的版本是python-nmap-0.1.4,我开始使用的是这个,后来出现一堆错误也没找到原因就换成了python-nmap-0.2.4。这个版本官网我没看到。下载

说说我遇到的问题:

D:python-nmap-0.2.4
map>python example.py
('Nmap not found', <class 'nmap.PortScannerError'>)
一时没看明白,把我写的那个ftp脚本跑了一下,问题如下:

D:ftplogin_file>python ftplogin_file.py -F ftp2.txt
Traceback (most recent call last):
  File "ftplogin_file.py", line 111, in <module>
    main()
  File "ftplogin_file.py", line 109, in main
    ftpLogin(filepath)
  File "ftplogin_file.py", line 77, in ftpLogin
    if nmapScan(ip,"21") == True:
  File "ftplogin_file.py", line 8, in nmapScan
    nmScan = nmap.PortScanner()
  File "C:Python27libsite-packages
map
map.py", line 144, in __init__
    raise PortScannerError('nmap program was not found in path. PATH is : {0}'.f
ormat(os.getenv('PATH')))
nmap.nmap.PortScannerError: 'nmap program was not found in path. PATH is : C:\W
INDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Python27;D:\WPS Of
fice\9.1.0.4468\office6;C:\Program Files\Microsoft Visual Studio\Common\To
ols\WinNT;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\
Program Files\Microsoft Visual Studio\Common\Tools;C:\Program Files\Microso
ft Visual Studio\VC98\bin'
查看nmap.py的源代码,发现是因为没有指定nmap的执行路径所致。在windows下,需要手动指定nmap的执行路径。在nmap.py初始化函数中加上自己机器上nmap可执行文件的路径即可。

    def __init__(self, nmap_search_path=('nmap','/usr/bin/nmap','/usr/local/bin/nmap','/sw/bin/nmap','/opt/local/bin/nmap',r"C:Program FilesNmap
map.exe") ):
再次运行,就可以成功了。



  


原文地址:https://www.cnblogs.com/hiccup/p/5424008.html