使用 scapy 获取有关 layer2 连接的信息
Getting information about layer2 connections using scapy
我想使用 scapy 从 pcap 文件中获取有关协议 802.11 中 mac 收件人 "talking" 的信息。我做了一些类似于使用 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 协议上实现与上述功能相同的功能吗?谢谢。
查看从 802.11 mac 地址获取的示例 mac header:
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' 文件以测试此代码。
我想使用 scapy 从 pcap 文件中获取有关协议 802.11 中 mac 收件人 "talking" 的信息。我做了一些类似于使用 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
.
有人知道如何在 mac 地址和 802.11 协议上实现与上述功能相同的功能吗?谢谢。
查看从 802.11 mac 地址获取的示例 mac header:
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' 文件以测试此代码。