【问题标题】:How to filter MAC addresses using tcpdump?如何使用 tcpdump 过滤 MAC 地址?
【发布时间】:2012-10-16 17:01:54
【问题描述】:

我在 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的设备。

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

【问题讨论】:

    标签: wireshark ethernet pcap tcpdump packet-capture


    【解决方案1】:

    man pcap-filter 我找到了这个解决方案:

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

    【讨论】:

    • 嗨!非常感谢您的回答。我也发现了这种方式。问题是我需要在 ether 之后指定标志 src 但如果我添加它,我仍然会收到语法错误。
    • 你为什么这么需要这个标志?
    • 为什么要在ether之后指定srcether src XX:XX:XX:XX:XX:XX 中的 ether 表示“这是一个以太网地址”,因此要仅查看源地址,您需要指定“src”,但 ether[6:2] 中的 ether 表示“这是以太网的一部分header”,以太网报头的字节 6 和 7 是源地址的前两个字节,字节 8 是源地址的第三个字节,所以 6:28:1 指定您正在测试源地址地址。石墨的过滤器正是您需要和想要的。
    • 好的!那我试试!非常感谢您的帮助!有什么问题我再写到这里!
    • 嗨!我不知道为什么,但这没有用。基本上,我使用整个 mac 地址(tcpdump -i prism0 ether src 5c:95:ae:x8:6c:3a -s0 -w | nc 192.168.1.147 31337)运行命令,然后 tcpdump 捕获了从我的手机发送的数据包。虽然,如果我使用石墨的过滤器(tcpdump -i prism0 "ether[6:2] == 0x5c95 and ether[8:1] == 0xae" -s0 -w | nc 192.168.1.147 31337)它不会捕获任何数据包。我不应该得到更多带有石墨过滤器的数据包吗?再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多