Pythonを用いてWireshark(T-Shark)を使うためのライブラリ「Pyshark」について、入門者向けにソースコード付きで解説します。
Pysharkとは
Pysharkは、PythonからWireshark(正確にはそのCLI版であるTShark)を操作して、パケットキャプチャしたり、取得したデータを解析できるライブラリです。主な用途は以下のとおりです。
ネットワークトラフィックのや自動処理に向いています。
- パケットの自動分類・抽出
- 特定条件のパケット検出(例:HTTPリクエスト、DNSクエリなど)
- ネットワークトラフィックの可視化・統計分析
- セキュリティログの自動処理
環境構築と基本操作
Pysharkの環境構築と基本操作について解説します。
環境構築
環境構築については以下ページで別途解説しています。

【Pyshark】環境構築・インストール方法
Pythonライブラリ「Pyshark」の環境構築・インストール方法を解説します。
pcapファイルの読み込み
import pyshark
cap = pyshark.FileCapture('sample.pcap')
print(cap[0]) # 最初のパケットを表示
フィルタ付き読み込み(Wiresharkのdisplay filterと同じ)
cap = pyshark.FileCapture('sample.pcap', display_filter='http')
リアルタイムキャプチャ(インターフェース指定)
cap = pyshark.LiveCapture(interface='eth0')
cap.sniff(timeout=10) # 10秒間キャプチャ
パケットの構造とアクセス
packet = cap[0]
print(packet.highest_layer) # 例: HTTP
print(packet.ip.src) # 送信元IP
print(packet.tcp.dstport) # 宛先ポート
レイヤー構造は packet.layers
で確認できます。HTTPやTCPなどのプロトコルごとに属性が用意されています。
HTTPリクエストの抽出
for pkt in cap:
if 'HTTP' in pkt:
print(pkt.http.host, pkt.http.request_uri)
cap.close()
を忘れずに。リソース解放が必要です。decode_as
やcustom_parameters
を使えば、より柔軟な解析が可能です。- HTTP/2のようにレイヤーが複数存在する場合は
packet.layers[i]
をループで探索するのが有効です。
関連ページ

【Wireshark超入門】パケットキャプチャの使い方
パケットキャプチャソフト「Wireshark」の使い方について入門者向けにまとめました。

【TShark超入門】パケットキャプチャの使い方
パケットキャプチャソフト「TShark」の使い方について入門者向けにまとめました。