python-nmap使用及詳解
python-nmap安裝及配置
1.nmap安裝:
這個不用多說了吧,直接官網下載安裝包,根據提示安裝就行了,我把官網地址給大家:Nmap: the Network Mapper - Free Security Scanner
2.python中安裝模塊
安裝模塊的話,我們安裝python-nmap模塊。正常使用pycharm的話,會有兩個跟nmap相關的,一個是nmap,另一個是python-nmap
我們選擇python-nmap模塊
我用的是pycharm安裝的,如果是命令行模式就(cmd),直接 pip install python-nmap即可
3.可以實現的功能:
- 主機存活狀態:根據目標的反應來確定它是否處於開機並聯網的狀態。
- 開放的端口掃描 :根據目標端口的反應來判斷它是否開放。
- 服務及版本檢測:檢測它運行服務的服務類型和版本。
- 操作系統檢測: 識別主機的操作系統
NOTES:python使用namp的話,我們需要安裝python-nmap模塊,而不是nmap模塊,安裝nmap模塊的話會出現下面這種現象:
Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: module 'nmap' has no attribute 'PortScanner‘
,兩個模塊都下載的話,可能導致運行不了,這個時候咱們需要把他們兩個都卸載,再重新安裝python-nmap即可
使用:
在我們介紹nmap模塊之前先跟大家說一下這個類:Portscanner()
PortScanner時python-nmap模塊中非常重要的類,實現nmap掃描有三個類,本文主要針對PortScanner講解
提這個的原因是小編自己找了好久,一直不知道自己的為什么不能運行,直到。。大佬噴我菜雞,告訴我不行的話就加上nmap的地址。。。汗顏
所以說你們要是碰到這個問題的話,可以這樣來:
nm=nmap.PortScanner(nmap_search_path=('nmap', r"D:\Nmap\nmap.exe"))標注的地方是你們自己nmap安裝的地址奧
接下來開始介紹用法:
拿掃描一個網段的主機存活狀態來說:
1.導入庫
import nmap
2.使用PortScanner
nm=nmap.PortScanner('nmap',r"D:\Nmap\nmap.exe")
3.調用函數scan
nm.scan('10.0.55.15','10-100')
scan中的參數詳解:
scan(self,hosts=‘主機地址(也可以寫成整個網段)’,ports=’端口號‘,arguments=’掃描方式’,callback=None,sudo=False)
這里面的callback是以(host,scan_data)為參數的函數,也就是整個網段的掃描
用到的函數:

了解了這些,大概的思路不就出來了么,接下來放代碼!!
#導入庫 import nmap #前置信息 nm=nmap.PortScanner(nmap_search_path=('nmap', r"D:\Nmap\nmap.exe")) nm.scan('10.55.0.15/24',)#掃描整個網段得主機的20-100端口 nm.command_line()#本次掃描的命令 nm.all_hosts()#掃描的所有主機 nm.scaninfo()#掃描的信息列出一個結構 nm.csv()#返回值用csv輸出 #print(nm.scaninfo()) for host in nm.all_hosts(): print('=================') print(host)#ip地址 print('State : %s' % nm[host].state())#主機存活狀態
結果如下:
今天的分享就先到這里了!
這是最基本的掃描判斷主機是否存活,具體的掃描端口,服務等,稍后將會發布,大家一起學習呀!!!