2017-01-15 10 views
0

scapyを使用してpcapファイルからプロトコル802.11の「話す」に関する情報を取得したいと考えています。scapyを使用してlayer2接続に関する情報を取得

argは、パケットのIDを表し、 self.pcapコマンド rdpcapを使用して開かれたのpcapファイルで数ある
l = self.pcap[int(arg)] 
    ipsrc = l.getlayer("IP").src 
    ipdst = l.getlayer("IP").dst 
    portsrc = l.getlayer("TCP").sport 
    portdst = l.getlayer("TCP").dport 

    pkt = [] 
    pkt.append([]) 
    for i,p in enumerate(self.pcap): 
     if p.haslayer('TCP'): 
      if p[IP].src == ipsrc and p[IP].dst == ipdst and p[TCP].sport == portsrc and p[TCP].dport == portdst: 
       pkt.append([i, p]) 
      if p[IP].src == ipdst and p[IP].dst == ipsrc and p[TCP].sport == portdst and p[TCP].dport == portsrc: 
       pkt.append([i, p]) 

:私は、TCP接続で作業することに類似した何かを行っています。

誰もが上記の機能と同じように行う方法を知っていますが、MACアドレスと802.11プロトコルではどちらですか?ありがとう。

+0

イーサネットカプセル化に関する情報を802.11 macヘッダーまたは802.11 macヘッダーにのみ表示しますか? – Dmitry

+0

@Dmitry macヘッダーのみ – Moshe9362

答えて

1

Macは802.11 MACヘッダーから住所が取得するための例を参照してください:

from scapy.all import * 

pcap = rdpcap('test_wifi.pcap') 
for pkt in pcap: 
    if pkt.haslayer(Dot11): 
     print "Addr1 = %s, Addr2 = %s, Addr3 = %s, Addr4 = %s" %(pkt.addr1, pkt.addr2, pkt.addr3, pkt.addr4) 

私はモードを監視し、このコードをテストするために「test_wifi.pcap」ファイルにキャプチャされたパケットを保存するために、私のワイヤレスカードを設定します。

関連する問題