2012-10-26 39 views
16

我正在DD-WRT路由器上运行tcpdump以捕获手机上行数据。我只想听一些mac地址。要做到这一点,我试图运行命令使用类似于Wireshark的语法:如何使用tcpdump过滤MAC地址?

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

,这样我可以听所有已作为初始MAC地址5c:95:ae设备。

问题是,语法是错误的,我想知道如果你们中的任何人都知道正确的语法来得到我想要的。

回答

10

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

tcpdump "ether[6:2] == 0x5c95 and ether[8:1] == 0xae" 
+0

嗨!非常感谢答案。我也是这样找到的。问题是我需要在ether之后指定标志src,但是如果我添加它,那么我仍然会出现语法错误。 –

+0

为什么你需要这个标志这么多? – graphite

+2

为什么你需要在'ether'之后指定'src'? 'ether src XX:XX:XX:XX:XX:XX'中的'ether'表示“这是一个以太网地址”,所以只需要查看源地址,你需要指定“src”,但是“ether”在'ether [6:2]'中表示“这是以太网报头的一部分”,以太网报头的字节6和7是源地址的前两个字节,而字节8是源地址的第三个字节,所以'6:2'和'8:1'指定你正在测试源地址。石墨的过滤器正是你需要和想要的。 – 2012-10-26 19:33:30