python基礎(chǔ)教程之udp端口掃描
一、概述
任務(wù)描述:
開(kāi)發(fā)一個(gè)程序,用于獲取局域網(wǎng)中開(kāi)啟snmp服務(wù)的主機(jī)ip地址列表,并寫(xiě)入相應(yīng)文件以便其它程序使用。
背景知識(shí):
SNMP是基于UDP的,而且標(biāo)準(zhǔn)的SNMP服務(wù)使用161和162端口。
思路:
1、獲取局域在線(xiàn)主機(jī)列表;
2、獲取各個(gè)主機(jī)的snmp端口(比如161)開(kāi)啟狀況;
3、以特定格式寫(xiě)入特定文件。
這里只實(shí)現(xiàn)前兩步。
二、nmap實(shí)現(xiàn)
1、安裝nmap
Linux平臺(tái)(CentOS為例):
yum install nmap -y
widows平臺(tái)(下載地址):
http://nmap.org/download.html#windows
2、獲取在線(xiàn)主機(jī)列表
以192.168.1.0/24網(wǎng)段為例:
nmap -sn 192.168.1.0/24
或者指定ip范圍掃描:
nmap -sn 192.168.1.1-254
參數(shù)解釋?zhuān)?BR>-sn: Ping掃描,只進(jìn)行主機(jī)發(fā)現(xiàn),不進(jìn)行端口掃描。
3、獲取主機(jī)端口開(kāi)啟狀況
以192.168.1.100為例
nmap -p 161 -sU 192.168.1.100
參數(shù)解釋?zhuān)?/P>
-p 161 : 掃描161端口
-sU : 進(jìn)行UDP掃描
nmap返回結(jié)果:
open : 開(kāi)放
closed : 關(guān)閉
filtered : 端口被防火墻IDS/IPS 屏蔽,無(wú)法確定其狀態(tài)
unfiltered : 端口沒(méi)有被屏蔽,但是否開(kāi)放需要進(jìn)一步確定
open|filtered : 端口是開(kāi)放的或被屏蔽
closed|filtered : 端口是關(guān)閉的或被屏蔽
4、nmap捷徑
掃描192.168.1.0/24網(wǎng)段的161端口如下:
nmap -p 161 -sU 192.168.1.0/24
三、python實(shí)現(xiàn)(借助python-nmap)
nmap的返回值有很多數(shù)據(jù),需要自行寫(xiě)程序進(jìn)行解析,比如對(duì)192.168.1.100的161端口進(jìn)行掃描的結(jié)果:
Nmap scan report for 192.168.1.100
Host is up (0.00024s latency).
PORT STATE SERVICE
161/udp closed snmp
MAC Address: 10:BF:5A:6A:BA:48 (Unknown)
這里有個(gè)python開(kāi)發(fā)的nmap解析庫(kù),原理是調(diào)用nmap命令,并對(duì)其結(jié)果進(jìn)行解析,返回python能識(shí)別的數(shù)據(jù)結(jié)構(gòu):
名稱(chēng) : python-nmap
url : http://xael.org/norman/python/python-nmap/python-nmap-0.1.4.tar.gz
示例(掃描局域網(wǎng)各個(gè)主機(jī)的snmp服務(wù)開(kāi)啟狀況):
#! /usr/bin/python
import nmap
nm = nmap.PortScanner()
nm.scan(hosts='192.168.1.0/24', arguments='-p 161 -sU ')
hosts_list = [(x, nm[x][u'udp'][161]['state']) for x in nm.all_hosts()]
for host, status in hosts_list:
print('{0}:{1}'.format(host, status))
- python編寫(xiě)簡(jiǎn)單端口掃描器
- python 3.6.7實(shí)現(xiàn)端口掃描器
- python3實(shí)現(xiàn)高效的端口掃描
- python nmap實(shí)現(xiàn)端口掃描器教程
- Python3多線(xiàn)程版TCP端口掃描器
- python實(shí)現(xiàn)多線(xiàn)程端口掃描
- 使用Python編寫(xiě)簡(jiǎn)單的端口掃描器的實(shí)例分享
- Python實(shí)現(xiàn)的多線(xiàn)程端口掃描工具分享
- Python端口掃描簡(jiǎn)單程序
- python基于socket函數(shù)實(shí)現(xiàn)端口掃描
相關(guān)文章
python寫(xiě)入并獲取剪切板內(nèi)容的實(shí)例
今天小編就為大家分享一篇python寫(xiě)入并獲取剪切板內(nèi)容的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05解決pycharm編輯區(qū)顯示yaml文件層級(jí)結(jié)構(gòu)遇中文亂碼問(wèn)題
這篇文章主要介紹了解決pycharm編輯區(qū)顯示yaml文件層級(jí)結(jié)構(gòu)遇中文亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python繪圖之自定義圖類(lèi)型控件實(shí)現(xiàn)混合類(lèi)型圖表
這篇文章主要為大家詳細(xì)介紹了Python如何新建繪圖類(lèi)型控件,實(shí)現(xiàn)混合類(lèi)型圖表,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-08-08Python動(dòng)態(tài)賦值的陷阱知識(shí)點(diǎn)總結(jié)
在本文中我們給大家整理了關(guān)于Python動(dòng)態(tài)賦值的陷阱的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-03-03python使用adbapi實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的異步存儲(chǔ)
這篇文章主要為大家詳細(xì)介紹了python使用adbapi實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的異步存儲(chǔ),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03