我想显示来自特定MAC地址或来自特定MAC地址的所有流量。 br />
sudo tcpdump host aa:bb:cc:11:22:33


我不知道如何解释此错误消息,也不知道如何解决该问题。

有帮助吗?

评论

您确定它是正确的MAC地址格式吗? MAC地址没有标准格式。我遇到了不同设备和需要不同格式的代码的问题。有些需要冒号,有些破折号,有些需要2位数字,有些需要3位,有些需要4位,还有一次需要将其切成两半。

嗨,是的,当然可以。这是工作时用于响应的格式。例如,此命令有效:> sudo tcpdump -e -nni all ether src aa:bb:cc:11:22:33编辑:它基本上返回了我想要的东西。 (我刚刚发现)

这是一个真正可怕的错误消息,并且在Mavericks之前的OS X上或者在未在Mavericks及更高版本上的“任何”设备上捕获或在任何其他OS上捕获tcpdump时,都会报告“ tcpdump:非醚表达式中使用的以太网地址” 。为此,我已向Apple Bug记者提交了Bug21698116。

#1 楼

您已将以下内容用作数据包过滤器:host aa:bb:cc:11:22:33

表示,它正在寻找IP或主机名,但您为其提供了MAC地址。

要使用一个MAC地址,您需要包括ether数据包过滤器原语。

对于您而言,以下方法应该起作用:

sudo tcpdump ether host aa:bb:cc:11:22:33


或者,如果需要您指定接口,则将类似于:

sudo tcpdump -i eth0 ether host aa:bb:cc:11:22:33


评论


谢谢,这确实很好地解释了,我现在清楚地理解了“ ether”参数。现在的一个问题是,为什么我在网上冲浪时看不到HTTP数据包头? (我有一部iPhone作为测试设备,我在嗅探它的MAC地址,如果我ping它,我可以看到流量,如果我唤醒它或使其处于睡眠状态,我可以看到流量,但是在浏览Safari时什么也看不到)

– phenetas
15年7月7日在18:01



由于我们不了解您的环境或您在该环境中查看数据的位置,因此没人能说出来。在能够回答该问题之前,我需要了解更多信息。

– YLearn♦
15年7月7日在18:26

好的,我在运行最后一个Os 10 Yosemite的Mac上进行开发,我的测试设备是具有iOs 7的iPhone 5S。问题是,如果我执行sudo tcpdump,我将控制网络上的所有流量,如果我在Mac上浏览网络,则会看到类似11:54:20.887984 IP 10.11.204.50.56049> 886entdc11.enterprise.886ventures的行。 com.domain:46247+ A?程序员.stackexchange.com。 (47),但是如果我使用sudo tcpdump主机IPOfIphone,那么如果我用手机上网,我将看不到任何来自互联网流量的信息。

– phenetas
15年7月7日在18:55



假设您的“访问点”实际上是某种网关设备,并且提供了对Internet的访问,并且您正在Mac上进行tcpdump:除非您已对其进行了某种配置,否则iPhone的Internet流量不会通过Mac,因此Mac看不到它。

– YLearn♦
15年7月7日在19:10

是的,这很有道理,也许我错过了网络基础(电气背景)。因此,如果我理解您的意思是,我只能看到来自Mac或来自Mac或广播的流量。但是在那种情况下,为什么我可以在手机连接到wifi时看到流量?在这种情况下,我会得到11:45:52.852928 IP 10.11.204.15.mdns> 224.0.0.251.mdns:0 *-[0q] 1/0/1 TXT“ model = N51AP”(98),这是电话(10.11.204.15)和224.0.0.251,这绝对不是我的mac(我认为这是接入点)。

– phenetas
15年7月7日在19:18

#2 楼

您还可以将not参数与YLearn的答案结合使用,以过滤出来自特定mac地址的数据包。在我的情况下,我需要除00:11:22:33:44:55以外的所有数据包,并使用了此数据包-

sudo tcpdump ether -i eth1 host not 00:11:22:33:44:55