Python中python-nmap模塊的使用介紹
環(huán)境: python 2.7.13
Windows
和Linux
默認(rèn)都是不安裝python-nmap
的,我們得手動(dòng)安裝
一、python-nmap的安裝
linux:
- wge t http://xael.org/pages/python-nmap-0.6.1.tar.gz
- tar -zxvf python-nmap-0.6.1.tar.gz
- cd python-nmap-0.6.1
- python setup.py install
Windows: pip install python-nmap
二、python-nmap模塊的使用
1.portScanner()類
portScanner()
類用于實(shí)現(xiàn)對(duì)指定主機(jī)進(jìn)行端口掃描
nmScan=nmap.PortScanner() ?#實(shí)例化
scan( host , port , args ) 方法:以指定方式掃描指定主機(jī)或網(wǎng)段的指定端口
參數(shù):
host
: 要掃描的主機(jī)或網(wǎng)段,可以是一個(gè)單獨(dú)的ip:192.168.10.10 ;也可以是一個(gè)小范圍網(wǎng)段:192.168.10.10-20 ;也可以是一個(gè)大網(wǎng)段:192.168.10.0/24port
: 可選參數(shù),要掃描的端口,多個(gè)端口用逗號(hào)隔開,如:20,21,22,23,24args
:可選參數(shù),要掃描的方式
import nmap nm = nmap.PortScanner() nm.scan('192.168.10.10-100', '22,21','-sV')
也可以這樣:
nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
command_line() 方法:返回的掃描方法映射到具體的nmap
命令行,也就是我們上面執(zhí)行的nm.scan()命令,對(duì)應(yīng)的具體的nmap的命令
import nmap nm = nmap.PortScanner() nm.scan('192.168.10.10-100', '22,21','-sV')? a=nm.command_line() print(a) ########################### nmap -oX - -p 20,21 -sV 192.168.125.134
scaninfo() 方法:返回nmap掃描信息,格式為字典類型
import nmap nm = nmap.PortScanner() nm.scan('192.168.10.10-100', '22,21','-sV') a=nm.scaninfo() print(a) ########################### {'tcp': {'services': '20-21', 'method': 'syn'}}
all_hosts() 方法:返回nmap掃描的主機(jī)清單,格式為列表類型
import nmap nm = nmap.PortScanner() nm.scan('192.168.10.10-12', '22,21','-sV') #################################################### ['192.168.10.10','192.168.10.11','192.168.10.12']
查看掃描主機(jī)的詳細(xì)信息: nm['192.168.125.134']
import nmap nm=nmap.PortScanner() nm.scan('192.168.125.134','445') a=nm['192.168.125.134'] ? ?#返回主機(jī)的詳細(xì)信息 print(a) ################################## {'status': {'state': 'up', 'reason': 'arp-response'},? 'hostnames': [{'type': 'PTR', 'name': 'bogon'}],? 'vendor': {'00:0C:29:F6:2B:F0': 'VMware'},? 'addresses': {'mac': '00:0C:29:F6:2B:F0', 'ipv4': '192.168.125.134'},? 'tcp': {445: {'product': 'Microsoft Windows 7 - 10 microsoft-ds', 'state': 'open', 'version': '', 'name': 'microsoft-ds', 'conf': '10', 'extrainfo': 'workgroup: WORKGROUP', 'reason': 'syn-ack', 'cpe': 'cpe:/o:microsoft:windows'}}}
查看主機(jī)掃描的端口包含的協(xié)議(TCP/UDP):nmap['192.168.125.134'].all_protocols() 返回列表型數(shù)據(jù)
import nmap nm=nmap.PortScanner() nm.scan('192.168.125.134','445') a=nm['192.168.125.134'].all_protocols() ? ?#返回主機(jī)掃描的端口包含的協(xié)議 print(a) ################################## ['tcp']
查看掃描的端口哪些端口提供了TCP協(xié)議:nmap['192.168.125.134']['tcp']
import nmap nm=nmap.PortScanner() nm.scan('192.168.125.134','445') a=nm['192.168.125.134']['tcp'] ? ? ? ?#返回主機(jī)掃描的端口哪些端口包含了TCP協(xié)議,返回具體信息 b=nm['192.168.125.134']['tcp'].keys() ?#只返還端口,返回列表型數(shù)據(jù) print(a) print(b) ################################## {445: {'product': 'Microsoft Windows 7 - 10 microsoft-ds', 'state': 'open', 'version': '', 'name': 'microsoft-ds', 'conf': '10', 'extrainfo': 'workgroup: WORKGROUP', 'reason': 'syn-ack', 'cpe': 'cpe:/o:microsoft:windows'}} [445]
查看該端口是否提供了TCP協(xié)議:nmap['192.168.125.134'].has_tcp(445) ,返回布爾類型的數(shù)據(jù)
import nmap nm=nmap.PortScanner() nm.scan('192.168.125.134','445') a=nm['192.168.125.134'].has_tcp(445) ? ? ? ?#判斷該端口是否提供TCP協(xié)議 print(a) ################################## True
查看該協(xié)議下端口的狀態(tài):nmap['192.168.125.134']['tcp'][445][state]
import nmap nm=nmap.PortScanner() nm.scan('192.168.125.134','445') a=nm['192.168.125.134']['tcp'][445]['state'] print(a) ################################## open
到此這篇關(guān)于Python中python-nmap
模塊的使用介紹的文章就介紹到這了,更多相關(guān)python-nmap模塊的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對(duì)Django的restful用法詳解(自帶的增刪改查)
今天小編就為大家分享一篇對(duì)Django的restful用法詳解(自帶的增刪改查),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08關(guān)于Python中zipfile壓縮包模塊的使用
這篇文章主要介紹了關(guān)于Python中zipfile壓縮包模塊的使用,zipfile?模塊提供了創(chuàng)建、讀取、寫入、添加及列出?ZIP?文件的工具,本文做一個(gè)簡(jiǎn)單的總結(jié),需要的朋友可以參考下2023-04-04Python OpenCV圖像指定區(qū)域裁剪的實(shí)現(xiàn)
這篇文章主要介紹了Python OpenCV圖像指定區(qū)域裁剪的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10python如何實(shí)現(xiàn)數(shù)組反轉(zhuǎn)
這篇文章主要介紹了python如何實(shí)現(xiàn)數(shù)組反轉(zhuǎn)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02OpenCV實(shí)現(xiàn)手勢(shì)虛擬拖拽的使用示例(附demo)
本文主要介紹了OpenCV實(shí)現(xiàn)手勢(shì)虛擬拖拽的使用示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11