我想获得有关mac收件人的信息" talk"在使用scapy的pcap文件的协议802.11中。我做了类似于使用tcp连接的东西:
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 :(得分:1)
请参阅从802.11 mac header获取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”文件以测试此代码。