網站首頁 編程語言 正文
環境:?python 2.7.13
Windows
和Linux
默認都是不安裝python-nmap
的,我們得手動安裝
一、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()
類用于實現對指定主機進行端口掃描
nmScan=nmap.PortScanner() ?#實例化
scan( host , port , args ) 方法:以指定方式掃描指定主機或網段的指定端口
參數:
-
host
: 要掃描的主機或網段,可以是一個單獨的ip:192.168.10.10 ;也可以是一個小范圍網段:192.168.10.10-20 ;也可以是一個大網段:192.168.10.0/24 -
port
: ? ?可選參數,要掃描的端口,多個端口用逗號隔開,如:20,21,22,23,24 -
args
:可選參數,要掃描的方式
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
命令行,也就是我們上面執行的nm.scan()命令,對應的具體的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掃描的主機清單,格式為列表類型
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']
查看掃描主機的詳細信息: nm['192.168.125.134']
import nmap nm=nmap.PortScanner() nm.scan('192.168.125.134','445') a=nm['192.168.125.134'] ? ?#返回主機的詳細信息 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'}}}
查看主機掃描的端口包含的協議(TCP/UDP):nmap['192.168.125.134'].all_protocols() ?返回列表型數據
import nmap nm=nmap.PortScanner() nm.scan('192.168.125.134','445') a=nm['192.168.125.134'].all_protocols() ? ?#返回主機掃描的端口包含的協議 print(a) ################################## ['tcp']
查看掃描的端口哪些端口提供了TCP協議: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'] ? ? ? ?#返回主機掃描的端口哪些端口包含了TCP協議,返回具體信息 b=nm['192.168.125.134']['tcp'].keys() ?#只返還端口,返回列表型數據 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協議:nmap['192.168.125.134'].has_tcp(445) ,返回布爾類型的數據
import nmap nm=nmap.PortScanner() nm.scan('192.168.125.134','445') a=nm['192.168.125.134'].has_tcp(445) ? ? ? ?#判斷該端口是否提供TCP協議 print(a) ################################## True
查看該協議下端口的狀態: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
原文鏈接:https://www.cnblogs.com/csnd/p/11807823.html
相關推薦
- 2023-04-19 nginx: [error] CreateFile() “D:\nginx-1.21.6/logs/
- 2022-04-23 R語言繪制line?plot線圖示例詳解_R語言
- 2022-09-07 如何應用?SOLID?原則在?React?中整理代碼之開閉原則_React
- 2022-04-08 python實現有效的括號判斷實例代碼_python
- 2022-12-23 Android入門之Menu組件的使用教程詳解_Android
- 2022-10-31 C++學習之cstdbool和cstddef頭文件封裝源碼分析_C 語言
- 2023-02-10 Jupyter導入自定義模塊及導入后TypeError錯誤問題及解決_python
- 2022-04-09 MyBatis 查詢返回數據類型Map,空字段數據不返回
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支