我试图通过src ether host
查看具有特定 MAC 前缀的所有设备来过滤流量。如果这就像 IP,它可能会进行过滤以src ether host aa:bb:cc:00:00:00/24
查看 OUI 的匹配aa:bb:cc
...但它不喜欢那样。
有没有办法通过MAC前缀或掩码进行匹配?
如果重要的话:
这是用于 Wi-Fi 的,因此从技术上讲,它是一个 SA 地址,如果您滚动到右侧(tcpdump
将其放在src ether host
字段中),您就可以看到该地址。
13:12:48.139316 1.0 Mb/s 2412 MHz 11b -41dBm signal -41dBm signal antenna 0 0us BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:aa:bb:cc:84:05:7c Probe Request (emporia) [5.5* 11.0* 1.0* 2.0* 6.0 12.0 24.0 48.0 Mbit]
答案1
名称(host、src host、ether、ether src...)基本上是相应 tcp od ip 数据包中特定字节的快捷方式。 tcpdump 过滤器中不允许使用通配符,因此必须更深入地研究 tcp 数据包本身。以太网源地址位于从 ether[6] 开始的 6 个字节中,以太网目标地址位于从 ether[0] 开始的 6 个字节中。
因此,如果想要过滤 src 地址的三个字节,则必须过滤字节 6,7 和 8。由于无法过滤树字节 ( "tcpdump: data size must be 1, 2, or 4"
),因此过滤器必须分为两部分。字节 6 和 7:ether[6:2],字节 8:ether[8:1]
这意味着,过滤器将如下所示:
ether[6:2]==0xaabb and ether[8:1]==0xcc