gpt4 book ai didi

linux - 使用 socket raw 嗅探 802.3 eth 数据包

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:41 28 4
gpt4 key购买 nike

我需要嗅探接口(interface) BPDU(网桥协议(protocol)数据单元)数据包,这些数据包封装在带有 LLC header 的 802.3 类型的 eth 帧中。我试图打开一个原始套接字:

skd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_802_3))

但尝试嗅探数据包我无法捕捉到它们。查看 include/linux/if_ether.h 似乎 ETH_P_802_3 是一个虚拟类型...是否有解决方案或者我应该使用 ETH_P_ALL 并分析以太网 header 的 EtherType 字段?

谢谢大家!

最佳答案

抱歉,我不确定您的问题是关于 ETH_P_ALL 标志还是您的嗅探器根本不起作用。

我建议使用 ETH_P_ALL 并自行解码 header 。

如果你的嗅探器不工作,确保你有混杂模式?在命令行中,您可以使用 ifconfig eth0 promisc,假设您的以太网设备是 eth0。或者您可以使用 ioctl 在您的设备上设置 IFF_PROMISC 标志。

综上所述,除非您有充分的理由不这样做,否则不重新发明轮子并简单地使用 libpcap 可能非常值得您花时间.

关于linux - 使用 socket raw 嗅探 802.3 eth 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6455156/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com