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())#主機存活狀態
結果如下:

今天的分享就先到這里了!
這是最基本的掃描判斷主機是否存活,具體的掃描埠,服務等,稍后將會發布,大家一起學習呀!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/379096.html
標籤:其他
上一篇:Python字串中的r和u
