這篇文章將為大家詳細講解有關怎么使用Python實現windows下的抓包與解析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
為惠城等地區用戶提供了全套網頁設計制作服務,及惠城網站建設行業解決方案。主營業務為網站建設、成都網站設計、惠城網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!系統環境:windows7,選擇windows系統是因為我對自己平時日常機器上的流量比較感興趣
python環境:python2.7 ,這里不選擇python3的原因,是因為接下來要用到的scapy包在python3中安裝較于python2要麻煩得多。如果你習慣于用python3,數據包的分析完全可以放在3下面做,因為抓包和分析是兩個完全獨立的過程。
需要的python包:scapy和dpkt
抓包代碼:
from scapy.sendrecv import sniff from scapy.utils import wrpcap dpkt = sniff(count = 100) #這里是針對單網卡的機子,多網卡的可以在參數中指定網卡 wrpcap("demo.pcap", dpkt)
你沒看錯,僅僅只需要兩行代碼就可以實現一個簡單的抓包功能。sniff函數負責嗅探數據包,而wrpcap函數將抓取到的數據包保存起來。
數據包的分析:
import dpkt import socket import datetime def printPcap(pcap): try: for timestamp, buf in pcap: eth = dpkt.ethernet.Ethernet(buf) #獲得以太包,即數據鏈路層包 print("ip layer:"+eth.data.__class__.__name__) #以太包的數據既是網絡層包 print("tcp layer:"+eth.data.data.__class__.__name__) #網絡層包的數據既是傳輸層包 print("http layer:" + eth.data.data.data.__class__.__name__) #傳輸層包的數據既是應用層包 print('Timestamp: ',str(datetime.datetime.utcfromtimestamp(timestamp))) #打印出包的抓取時間 if not isinstance(eth.data, dpkt.ip.IP): print('Non IP Packet type not supported %s' % eth.data.__class__.__name__) continue ip = eth.data do_not_fragment =bool(ip.off & dpkt.ip.IP_DF) more_fragments =bool(ip.off & dpkt.ip.IP_MF) fragment_offset = ip.off & dpkt.ip.IP_OFFMASK print('IP: %s -> %s (len=%d ttl=%d DF=%d MF=%d offset=%d)' % (socket.inet_ntoa(ip.src), socket.inet_ntoa(ip.dst), ip.len, ip.ttl, do_not_fragment, more_fragments,fragment_offset)) except: pass def main(): f =open('demo.pcap','rb') pcap = dpkt.pcap.Reader(f) printPcap(pcap) if __name__ =='__main__': main()
結果顯示:
這是我打開360的路由器衛士時抓取的數據包。這個軟件在打開時與路由器通信,獲得連接路由器的電腦和手機的列表。192.168.1.100是我的機器,192.168.1.1是路由器地址,其中可以看到windows發送的數據包的ttl值默認是128,其他的系統默認是64,與我們的理論常識是相符的。
TCP/IP五層分層的結構和封包過程,附圖二張:
關于“怎么使用Python實現windows下的抓包與解析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前題目:怎么使用Python實現windows下的抓包與解析-創新互聯
本文地址:http://m.newbst.com/article36/cogssg.html
成都網站建設公司_創新互聯,為您提供云服務器、建站公司、營銷型網站建設、品牌網站設計、網站設計、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯