使用scapy获取有关第2层连接的信息

2024-10-03 11:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用scapy从pcap文件中获取mac地址在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协议?谢谢。在


Tags: andselfipsrcpcaptcpdstpkt
1条回答
网友
1楼 · 发布于 2024-10-03 11:19:33

请参阅从802.11 mac标头获取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)

我将无线网卡设置为监控模式,并将捕获的数据包保存到“测试”_wifi.pcap'用于测试此代码的文件。在

相关问题 更多 >