溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用PYTHON解析Wireshark的PCAP文件方法

發(fā)布時(shí)間:2021-04-27 13:39:37 來(lái)源:億速云 閱讀:872 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)如何使用PYTHON解析Wireshark的PCAP文件方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

python是什么意思

Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,其最初的設(shè)計(jì)是用于編寫自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開(kāi)發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。

PYTHON首先要安裝scapy模塊

PY3的安裝scapy-python3,使用PIP安裝就好了,注意,PY3無(wú)法使用pyinstaller打包文件,PY2正常

PY2的安裝scapy,比較麻煩

from scapy.all import *
pcaps = rdpcap("file.pcap")

pcaps便是解析后的類似結(jié)構(gòu)體的東西了

<pre name="code" class="python">packet=pcaps[0] #第1個(gè)數(shù)據(jù)包結(jié)構(gòu)
packet.time#數(shù)據(jù)包時(shí)間戳
packet[Raw].load#PY3讀取節(jié)點(diǎn)數(shù)據(jù)方法,packet[IP].src;packet[IP].dst
packet['Raw'].load#PY2讀取節(jié)點(diǎn)數(shù)據(jù)方法,PY3也應(yīng)該可以
lambda="lambda pcap:IP in pcap and UDP in pcap and pcap[IP].src=='192.168.1.1' and pcap[UDP].sport==80"
results=pcaps.filter(eval(lambda))#lambda是一種表達(dá)式,這里使用字符串,也可以不用eval,直接寫表達(dá)式,然后返回經(jīng)過(guò)篩選的數(shù)據(jù)包

python解析數(shù)據(jù)包十分占用內(nèi)存,建議先用tshark命令行預(yù)處理篩選一遍數(shù)據(jù)包再進(jìn)行PYTHON處理

cmd_filter="%s && ip.src==%s && ip.dst==%s && %s.srcport==%s && %s.port==%s"% \
        (Node['proto'].lower(),Node['src'],Node['dst'],Node['proto'].lower(),Node['sport'],Node['proto'].lower(),Node['dport'])
   
os.system('start /WAIT "" "%s\tshark" -r "%s" -R "%s" -w "%s"'%(Wireshark_path,pcap_filename,cmd_filter,Temp_pcap_File))

然后在處理Temp_pcap_File文件就好了

關(guān)于“如何使用PYTHON解析Wireshark的PCAP文件方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI