摘要:如主頁文檔中展示的打開存儲的捕獲文件從網(wǎng)絡(luò)接口上進行捕獲使用或者方法建立對象后,在捕獲和數(shù)據(jù)包層面就會有多個方法和屬性可用。的強大在于可以調(diào)用內(nèi)建的所有數(shù)據(jù)包解碼器。后續(xù)文章中會說明需要那些措施來保留內(nèi)存。下一篇入門和模塊
原文地址:http://zodiacg.net/2016/07/in...
本系列文章譯自thePacketGeek的系列文章。原創(chuàng)翻譯,轉(zhuǎn)載請注明出處。
文章作者以PyShark為基礎(chǔ)開發(fā)了Cloud-Pcap,一個類似CloudShark的pcap在線存儲、分析工具。
你可以使用PyShark在網(wǎng)絡(luò)接口上進行嗅探,或者打開存儲的pcap文件進行分析。如PyShark主頁文檔中展示的:
import pyshark # 打開存儲的捕獲文件 cap = pyshark.FileCapture("/tmp/mycapture.cap") # 從網(wǎng)絡(luò)接口上進行捕獲 capture = pyshark.LiveCapture(interface="eth0") capture.sniff(timeout=10)
使用 LiveCapture 或者 FileCapture 方法建立 Capture 對象后,在捕獲(capture)和數(shù)據(jù)包(packet)層面就會有多個方法和屬性可用。PyShark的強大在于可以調(diào)用tshark內(nèi)建的所有數(shù)據(jù)包解碼器。我這里只簡單展示一下你可以做的一些事情,后續(xù)的文章中會展開更深入的說明。
獲取數(shù)據(jù)包摘要(類似于tshark捕獲的輸出)
>>> for pkt in cap: ...: print pkt ...: 2 0.512323 0.512323 fe80::f141:48a9:9a2c:73e5 ff02::c SSDP 208 M-SEARCH * HTTP/ 3 1.331469 0.819146 fe80::159a:5c9f:529c:f1eb ff02::c SSDP 208 M-SEARCH * HTTP/ 4 2.093188 0.761719 192.168.1.1 239.255.255.250 SSDP 395 NOTIFY * HTTP/1. 0x0000 (0) 5 2.096287 0.003099 192.168.1.1 239.255.255.250 SSDP 332 NOTIFY * HTTP/1. 0x0000 (0)
按層深入獲取數(shù)據(jù)包屬性
>>> pkt. #(tab auto-complete) pkt.captured_length pkt.highest_layer pkt.ip pkt.pretty_print pkt.transport_layer pkt.eth pkt.http pkt.layers pkt.sniff_time pkt.udp pkt.frame_info pkt.interface_captured pkt.length pkt.sniff_timestamp >>> >>> pkt[pkt.highest_layer]. #(tab auto-complete) pkt_app. pkt_app.get_field_value pkt_app.raw_mode pkt_app.request_version pkt_app.DATA_LAYER pkt_app.get_raw_value pkt_app.request pkt_app.chat pkt_app.layer_name pkt_app.request_method pkt_app.get_field pkt_app.pretty_print pkt_app.request_uri
遍歷數(shù)據(jù)包,對每個數(shù)據(jù)包使用給定函數(shù)處理
>>> cap = pyshark.FileCapture("test.pcap", keep_packets=False) >>> def print_highest_layer(pkt) ...: print pkt.highest_layer >>> cap.apply_on_packets(print_highest_layer) HTTP HTTP HTTP HTTP HTTP ... (truncated)
這些只算是管中窺豹! 誰能想到在Python腳本中使用tshark/Wireshark的強大力量會如此容易呢!
我現(xiàn)在發(fā)現(xiàn)的唯一缺陷是性能。一旦你開始處理幾千個數(shù)據(jù)包,PyShark就開始變慢了。
后續(xù)文章中會說明需要那些措施來保留內(nèi)存。
下一篇:PyShark入門(2): FileCapture和LiveCapture模塊
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38071.html
摘要:中進行數(shù)據(jù)包分析的兩個典型方法是使用和模塊。僅用于在嗅探時使用的過濾條件。僅用于保存的捕獲文件的路徑格式。用于在讀取較大的捕獲時節(jié)省內(nèi)存。類似于使用或者進行嗅探,過濾器可以用于確定進入到返回的對象中的流量。 原文地址:http://zodiacg.net/2016/07/in... 本系列文章譯自thePacketGeek的系列文章。原創(chuàng)翻譯,轉(zhuǎn)載請注明出處。 PyShark中進行數(shù)據(jù)...
摘要:以字節(jié)表示的數(shù)據(jù)包長度。當前數(shù)據(jù)包到達時間與第一個數(shù)據(jù)包的差值。的窗口大小僅用于數(shù)據(jù)包。如果你對的應(yīng)用實例感興趣,你可以看看我的項目上一篇入門對象 原文鏈接:http://zodiacg.net/2016/07/in... 本系列文章譯自thePacketGeek的系列文章。原創(chuàng)翻譯,轉(zhuǎn)載請注明出處。 目前在這一系列文章中我們已經(jīng)了解了如何捕獲數(shù)據(jù)包和使用 capture 對象,我們終...
摘要:,和屬性是之前傳遞給或者的值。方法使得對象可以通過循環(huán)進行遍歷。方法是另一種遍歷數(shù)據(jù)包的方式,它接受一個函數(shù)作為參數(shù)并將之作用于所有的數(shù)據(jù)包。下面的腳本會將所有的數(shù)據(jù)包加入到一個列表中并打印總數(shù)上一篇入門和模塊下一篇入門對象 原文鏈接:http://zodiacg.net/2016/07/in... 本系列文章譯自thePacketGeek的系列文章。原創(chuàng)翻譯,轉(zhuǎn)載請注明出處。 我們已...
摘要:項目地址前言大數(shù)據(jù)技術(shù)棧思維導圖大數(shù)據(jù)常用軟件安裝指南一分布式文件存儲系統(tǒng)分布式計算框架集群資源管理器單機偽集群環(huán)境搭建集群環(huán)境搭建常用命令的使用基于搭建高可用集群二簡介及核心概念環(huán)境下的安裝部署和命令行的基本使用常用操作分區(qū)表和分桶表視圖 項目GitHub地址:https://github.com/heibaiying... 前 言 大數(shù)據(jù)技術(shù)棧思維導圖 大數(shù)據(jù)常用軟件安裝指...
摘要:開發(fā)環(huán)境及版本要求及以上版本開發(fā)工具簡稱推薦使用,同樣可以使用實踐。注解職責應(yīng)用啟動時容器會加載并注入到容器。掃描被修飾的配置類,也會掃描組件的配置類,并啟動加載其默認配置。 1. Spring Boot簡介 ??Spring Boot是由Pivotal團隊提供的全新框架,秉承習慣優(yōu)于配置的理念,簡化了Spring應(yīng)用程序創(chuàng)建和開發(fā),無須過多關(guān)注配置,可以將更多精力放在業(yè)務(wù)代碼上。 2...
閱讀 1345·2021-11-25 09:43
閱讀 754·2021-11-18 10:02
閱讀 2883·2021-09-07 09:59
閱讀 2762·2021-08-30 09:44
閱讀 2930·2019-08-30 13:17
閱讀 2321·2019-08-29 12:17
閱讀 1685·2019-08-28 17:57
閱讀 1292·2019-08-26 14:04