0

私はいくつかのpcapファイルを持っていますが、以前はtsharkを組み合わせたpythonを使用してソースIPアドレス、タイムスタンプなどを抽出していました。

ただし、これらのpcapファイルをWiresharkで開きます。VLAN情報も含まれています。VIDは私が今抽出したいものです。

ターミナルで使用tshark -r xx.pcapしていますが、TCPレベルの情報しか表示できず、このVLANIDを取得できません。Pythonでそれを行う方法を知っている人はいますか?ライブラリまたはツールを使用しますか?

4

2 に答える 2

2

完璧なソリューションはScapyです

この例では、VLAN を使用してパケットを作成し、VLAN ID を出力します。

from scapy.all import *
pkt=Ether()/Dot1Q(vlan=0x32)/IP(dst="192.168.1.66")/ICMP()
print pkt[Dot1Q].vlan

この例は、pcap ファイルを読み取り、VLAN ID を出力する方法を示しています。

from scapy.all import *
from scapy.utils import *
pkts=rdpcap("filename.pcap")
for pkt in pkts:
    if pkt.haslayer(Dot1Q):
        print pkt[Dot1Q].vlan 

テスト済みで完璧に動作します。

于 2011-12-13T14:13:04.230 に答える
0

そのためにScapyを使用できます。

from scapy.all import *

recs = rdpcap("yourpcap.pcap")

# extract vlan id from first record
for rec in recs:
    dot1q = rec.get_layer(Dot1Q)
    if dot1q is None:
        # not vlan here, skip.
        continue
    print 'Vlanid found:', dot1q.vlan, 'on packet', rec

テストされていませんが、動作する可能性があります。scappy を学ぶには、それを起動し、オートコンプリートで遊んで、チュートリアルを読むのが一番です :)

于 2011-12-13T14:04:04.023 に答える