Python使用PyNmap進(jìn)行網(wǎng)絡(luò)掃描的詳細(xì)步驟
實(shí)現(xiàn)步驟
1. 安裝 PyNmap
首先,你需要安裝 PyNmap。你可以通過 pip 來安裝它:
pip install python-nmap
此外,你還需要確保在系統(tǒng)中安裝了 Nmap。你可以從 Nmap 官網(wǎng) 下載并安裝它,或者通過包管理器進(jìn)行安裝:
- 在 Ubuntu 上安裝 Nmap:
sudo apt-get install nmap
- 在 macOS 上安裝 Nmap:
brew install nmap
2. 使用 PyNmap 進(jìn)行基礎(chǔ)網(wǎng)絡(luò)掃描
一旦安裝完成,你可以使用 PyNmap 進(jìn)行各種類型的網(wǎng)絡(luò)掃描。以下是一些常見的用法示例:
2.1 掃描單個(gè)主機(jī)
以下是如何使用 PyNmap 掃描單個(gè)主機(jī)的示例:
import nmap
# 創(chuàng)建一個(gè) Nmap 掃描器對(duì)象
nm = nmap.PortScanner()
# 掃描目標(biāo)主機(jī)的特定端口(如 22, 80, 443)
nm.scan('127.0.0.1', '22-443')
# 打印掃描結(jié)果
for host in nm.all_hosts():
print(f'Host: {host} ({nm[host].hostname()})')
print(f'State: {nm[host].state()}')
for proto in nm[host].all_protocols():
print(f'Protocol: {proto}')
lport = nm[host][proto].keys()
for port in lport:
print(f'Port: {port}\tState: {nm[host][proto][port]["state"]}')
2.2 掃描整個(gè)網(wǎng)絡(luò)
你可以使用 PyNmap 掃描整個(gè)網(wǎng)絡(luò),查找在線的主機(jī):
import nmap
# 創(chuàng)建一個(gè) Nmap 掃描器對(duì)象
nm = nmap.PortScanner()
# 掃描整個(gè)子網(wǎng),例如 192.168.1.0/24
nm.scan('192.168.1.0/24')
# 打印掃描結(jié)果
for host in nm.all_hosts():
print(f'Host: {host} ({nm[host].hostname()})')
print(f'State: {nm[host].state()}')
for proto in nm[host].all_protocols():
print(f'Protocol: {proto}')
lport = nm[host][proto].keys()
for port in lport:
print(f'Port: {port}\tState: {nm[host][proto][port]["state"]}')
2.3 執(zhí)行操作系統(tǒng)檢測(cè)
Nmap 支持操作系統(tǒng)檢測(cè)功能,你可以通過 PyNmap 調(diào)用這一功能:
import nmap
# 創(chuàng)建一個(gè) Nmap 掃描器對(duì)象
nm = nmap.PortScanner()
# 執(zhí)行操作系統(tǒng)檢測(cè)(-O 參數(shù))
nm.scan('192.168.1.1', arguments='-O')
# 打印操作系統(tǒng)檢測(cè)結(jié)果
for host in nm.all_hosts():
if 'osclass' in nm[host]:
for osclass in nm[host]['osclass']:
print(f'OS Type: {osclass["osfamily"]}, Accuracy: {osclass["accuracy"]}%')
2.4 使用 Nmap 腳本引擎 (NSE)
你還可以使用 Nmap 腳本引擎 (NSE) 來執(zhí)行更復(fù)雜的掃描,例如漏洞檢測(cè)、服務(wù)版本檢測(cè)等:
import nmap
# 創(chuàng)建一個(gè) Nmap 掃描器對(duì)象
nm = nmap.PortScanner()
# 使用 NSE 腳本進(jìn)行掃描(例如探測(cè) HTTP 服務(wù)版本)
nm.scan('192.168.1.1', arguments='--script http-enum')
# 打印掃描結(jié)果
for host in nm.all_hosts():
print(f'Host: {host} ({nm[host].hostname()})')
print(f'State: {nm[host].state()}')
if 'hostscript' in nm[host]:
for script in nm[host]['hostscript']:
print(f"Script: {script['id']} -> {script['output']}")
3. 解析和處理掃描結(jié)果
PyNmap 返回的數(shù)據(jù)結(jié)構(gòu)非常直觀,你可以輕松解析和處理掃描結(jié)果。例如,nm.all_hosts() 返回所有掃描到的主機(jī),nm[host].all_protocols() 返回該主機(jī)的所有協(xié)議(如 TCP、UDP),而 nm[host][proto][port] 返回指定端口的詳細(xì)信息(如狀態(tài)、服務(wù)類型等)。
4. 其他常用功能
- 快速掃描主機(jī)(ping 掃描):
nm.scan(hosts='192.168.1.0/24', arguments='-sn')
- 服務(wù)和版本檢測(cè):
nm.scan('192.168.1.1', '1-1024', '-sV')
- 獲取特定端口的詳細(xì)信息:
print(nm['192.168.1.1']['tcp'][80])
5. 總結(jié)
PyNmap 是一個(gè)強(qiáng)大而靈活的工具,可以用來進(jìn)行各種類型的網(wǎng)絡(luò)掃描,包括端口掃描、操作系統(tǒng)檢測(cè)、服務(wù)版本檢測(cè)以及使用 Nmap 腳本引擎 (NSE) 執(zhí)行高級(jí)掃描。它適合與 Python 腳本集成,用于自動(dòng)化網(wǎng)絡(luò)安全審計(jì)和測(cè)試。
使用 PyNmap 時(shí),確保你有適當(dāng)?shù)臋?quán)限,避免對(duì)未經(jīng)授權(quán)的網(wǎng)絡(luò)進(jìn)行掃描,這是違反法律的。
以上就是Python使用PyNmap進(jìn)行網(wǎng)絡(luò)掃描的詳細(xì)步驟的詳細(xì)內(nèi)容,更多關(guān)于Python PyNmap網(wǎng)絡(luò)掃描的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python數(shù)據(jù)分析Matplotlib?柱狀圖繪制
本文主要介紹了Python數(shù)據(jù)分析Matplotlib柱狀圖繪制,Matplotlib提供了bar()方法繪制柱狀圖,下面具體繪制介紹需要的小伙伴可以參考以一下2022-05-05
使用Python在Word文檔中添加,刪除和回復(fù)批注
在文檔協(xié)作與審閱場(chǎng)景中,高效管理批注是提升團(tuán)隊(duì)效率的關(guān)鍵環(huán)節(jié),下面我們就來看看如何使用Python在Word文檔中實(shí)現(xiàn)添加、刪除和回復(fù)批注的操作吧2025-03-03
Python2.7基于淘寶接口獲取IP地址所在地理位置的方法【測(cè)試可用】
這篇文章主要介紹了Python2.7基于淘寶接口獲取IP地址所在地理位置的方法,涉及Python調(diào)用淘寶IP庫接口進(jìn)行IP查詢的簡單操作技巧,需要的朋友可以參考下2017-06-06
TensorFlow深度學(xué)習(xí)另一種程序風(fēng)格實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)
這篇文章主要介紹了TensorFlow卷積神經(jīng)網(wǎng)絡(luò)的另一種程序風(fēng)格實(shí)現(xiàn)方式示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
python 多個(gè)參數(shù)不為空校驗(yàn)方法
今天小編就為大家分享一篇python 多個(gè)參數(shù)不為空校驗(yàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02
python如何發(fā)布自已pip項(xiàng)目的方法步驟
這篇文章主要介紹了python如何發(fā)布自已pip項(xiàng)目的方法步驟,方便大家學(xué)習(xí),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10
python實(shí)現(xiàn)plt x軸坐標(biāo)按1刻度顯示
這篇文章主要介紹了python實(shí)現(xiàn)plt x軸坐標(biāo)按1刻度顯示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Django中modelform組件實(shí)例用法總結(jié)
在本篇文章里小編給大家整理的是關(guān)于Django中modelform組件實(shí)例用法內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。2020-02-02

