如何使用tcpdump过滤MAC地址?

Gio*_*ldi 16 ethernet packet-capture tcpdump pcap wireshark

我在DD-WRT路由器上运行tcpdump,以便从手机中捕获上行链路数据.我想只听一些mac地址.为此,我尝试使用类似于Wireshark的语法运行命令:

tcpdump -i prism0 ether src[0:3] 5c:95:ae -s0 -w | nc 192.168.1.147 31337

这样我就可以收听所有具有初始mac地址的设备5c:95:ae.

问题是语法错误,我想知道是否有人知道正确的语法来获得我想要的东西.

gra*_*ite 11

随着man pcap-filter我发现这个解决方案:

tcpdump "ether[6:2] == 0x5c95 and ether[8:1] == 0xae"
Run Code Online (Sandbox Code Playgroud)

  • 你为什么需要在`ether`之后指定`src`?`ether src XX:XX:XX:XX:XX:XX`中的`ether`表示"这是一个以太网地址",所以要查看源地址,你需要指定"src",但是`ether`在`ether [6:2]中说"这是以太网报头的一部分",以太网报头的字节6和7是源地址的前两个字节,字节8是源地址的第三个字节,所以`6:2`和`8:1`指定你正在测试源地址.石墨的过滤器正是您所需要的. (2认同)