2017-01-15 41 views
0

我想要使用scapy从pcap文件中获取有关mac地址在协议802.11中“交谈”的信息。我已经做了类似与TCP连接工作的东西:使用scapy获取关于layer2连接的信息

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]) 

其中arg是一个数字,代表了数据包的ID和self.pcap为利用命令rdpcap开了一个PCAP文件。

任何人有任何想法如何做到上述功能,但在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”文件来测试这个代码。

相关问题