簡體   English   中英

(&#39;未找到 Nmap&#39;,<class 'nmap.nmap.PortScannerError'> )

[英]('Nmap not found', <class 'nmap.nmap.PortScannerError'>)

哪里有問題?

import nmap

我安裝了nmap和python,當我使用import nmap時沒有任何問題。 但是在使用時:

nmap.PortScanner()

拋出此錯誤:

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'"

對於 Windows 用戶:

我建議在嘗試運行腳本時首先關閉所有終端和 IDLE 或您當前打開的任何其他窗口。

接下來,打開命令行並鍵入

pip uninstall python-nmap

如果您不確定當前系統上是否安裝了 Nmap 二進制文件,請簡單搜索

nmap

從你的開始菜單。 如果已經安裝,繼續下一步,如果沒有,去Nmap的官方下載頁面

下載windows自安裝並運行它。 記錄它正在安裝到的目錄。

去那個目錄。 對我來說是

C:\\Program Files (x86)\\Nmap

打開系統的環境變量編輯器,通常可以在

My PC > System Information > Advance settings > Environment Variables

或者右鍵

我的電腦或我的電腦或任何你的電腦,然后選擇屬性,然后高級選項卡底部的高級設置然后環境變量

YouSystem選擇Path

Edit並輸入full path to your Nmap directorfull path to your Nmap director

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

按確定並退出編輯器。

現在回到你的命令行並輸入: pip install python-nmap允許它安裝然后重新啟動你的ide並再次測試你的代碼。

python-nmap似乎依賴於nmap ,它是執行實際網絡掃描和審計的二進制文件。

如果 nmap 在您的$PATH ,您可以使用以下命令檢查終端:

 which nmap

類似 Debian

您可以使用以下命令在類似 debian 的發行版中安裝 nmap:

apt-get install nmap

拱門Linux:

pacman -Sy nmap

已經安裝了nmap

如果您確定安裝了nmap二進制文件,但您認為它不在您的$PATH ,您可能需要將安裝 nmap 的目錄添加到您的$PATH

為此,請編輯用戶目錄中的.bashrc文件,或/etc/bashrc (對於所有用戶都會更改)並添加以下內容:

export PATH="$PATH:/usr/local/nmap/bin"

但更改/usr/local/nmap/bin為安裝 nmap 二進制文件的目錄。 更改文件后,一定要打開一個新的 shell 會話,或者輸入exec bash來刷新它。

您還必須確保它具有執行權限( chmod +x <file> )。

執行時:

nmap --version

您應該會看到如下內容:

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

如果這樣做,則nmap已安裝並位於您的$PATH

我曾經也有過一樣的問題。 只需在終端中輸入:

sudo apt-get install nmap

並解決了問題。

嘗試運行nm= nmap.PortScanner()遇到類似問題

我嘗試了上面給出的大多數解決方案,但它們對我不起作用。 對我有用的是使用 home brew 為 Mac OS X 安裝 nmap(信息位於: http : //brew.sh )並運行命令

$ brew install nmap.

現在nm= nmap.PortScanner()運行時沒有之前的錯誤。

使用 Jessy lite 在 Raspberry Pi 3 上運行

我不得不:

sudo apt-get update

sudo apt-get upgrade

然后我可以:

sudo apt-get install nmap

nmap --version

關於nmap的注意事項

我使用 nmap 搜索掩碼 192.168.1.0/24,但沒有找到所有 ip。 例如:我在 192.168.1.119 上的筆記本電腦沒有找到,所以我最終使用了以下組合:

def ping(self, ip):
    # Use the system ping command with count of 1 and wait time of 1.
    ret = subprocess.call(['ping', '-c', '1', '-W', '1', ip],
                          stdout=open('/dev/null', 'w'),
                          stderr=open('/dev/null', 'w'))

    return ret == 0 # Return True if our ping command succeeds

在多線程 Pinger 中

我從 Pinger 得到: http : //blog.boa.nu/2012/10/python-threading-example-creating-pingerpy.html

我創建了自己的 IpInfo 類來存儲信息並搜索每個 IP 上的開放端口,在這里我使用 nmap :(代碼“正在進行中”,但您會明白。調整性能的想法會很好)

class IpInfo(object):
ip = None
hostname = None
ports = []
lastSeenAt = strftime("%Y-%m-%d %H:%M:%S", gmtime())


def findHostName(self):
    if(ip):
        self.hostname = str(socket.gethostbyaddr(ip)[0])
    else:
        raise NameError('IP missing')

def findOpenPorts(self):
    print('findOpenPorts')
    nm = nmap.PortScanner()
    nm.scan(host)
    nm.command_line()
    nm.scaninfo()

    for proto in nm[self.ip].all_protocols():
        print('----------')
        print('Protocol : %s' % proto)

        lport = nm[self.ip][proto].keys()   #<------ This 'proto' was changed from the [proto] to the ['tcp'].
        lport.sort()

        for port in lport:
            if(nm[self.ip][proto][port]['state'] == 'open'):
                self.ports.append(port)

windows下必須先安裝nmap for windows ,可以用這個鏈接安裝https://nmap.org/download.html

對於 macOS 用戶,只需使用brew install nmap而不是使用 pip

我有一個完美的解決方案..

第一種類型:- apt-get remove nmap

然后:- apt autoremove

然后:- 去www.pypi.org

輸入 python nmap 並下載0.6版本

使用命令提取它:- tar -zxvf filename

cd到新提取的文件

類型:- python setup.py install

接着

apt-get install nmap

你准備好了。

對於 Windows:我發現這很有幫助:

choco install nmap

如果可能的話,你必須在提升的命令下運行這個 Powershell 我假設你已經完成了pip install python-nmap

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM