Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用套接字原始数据嗅探802.3 eth数据包_Linux_Network Programming_Sniffing - Fatal编程技术网

Linux 使用套接字原始数据嗅探802.3 eth数据包

Linux 使用套接字原始数据嗅探802.3 eth数据包,linux,network-programming,sniffing,Linux,Network Programming,Sniffing,我需要嗅探接口BPDU(网桥协议数据单元)数据包,这些数据包封装在带有LLC报头的802.3类型eth帧中。我试图打开一个插座: skd=socket(AF_数据包、SOCK_原始、htons(ETH_p_802_3)) 但我试着嗅包却抓不到。查看include/linux/if_ether.h似乎ETH_P_802_3是一个虚拟类型……是否有解决方案,或者我应该使用ETH_P_ALL并分析ethernet标头的EtherType字段 谢谢大家! 对不起,我不确定您的问题是关于ETH\u p\u

我需要嗅探接口BPDU(网桥协议数据单元)数据包,这些数据包封装在带有LLC报头的802.3类型eth帧中。我试图打开一个插座:

skd=socket(AF_数据包、SOCK_原始、htons(ETH_p_802_3))

但我试着嗅包却抓不到。查看include/linux/if_ether.h似乎ETH_P_802_3是一个虚拟类型……是否有解决方案,或者我应该使用
ETH_P_ALL
并分析ethernet标头的EtherType字段


谢谢大家!

对不起,我不确定您的问题是关于
ETH\u p\u ALL
标志,还是您的嗅探器根本不工作

我建议使用
ETH\u p\u ALL
并自己解码标题

如果你的嗅探器不工作,确保你有滥交模式?在命令行中,您可以使用
ifconfig eth0-promisc
,前提是您的以太网设备是
eth0
。或者您可以使用
ioctl
在设备上设置
IFF\u PROMISC
标志


话虽如此,除非你有充分的理由不这么做,否则你最好不要重新发明轮子,而只是简单地使用它。

对不起,我不确定你的问题是关于
ETH\u p\u All
标志还是你的嗅探器根本不起作用

我建议使用
ETH\u p\u ALL
并自己解码标题

如果你的嗅探器不工作,确保你有滥交模式?在命令行中,您可以使用
ifconfig eth0-promisc
,前提是您的以太网设备是
eth0
。或者您可以使用
ioctl
在设备上设置
IFF\u PROMISC
标志


综上所述,除非你有很好的理由不这么做,否则你最好不要重新发明轮子,而只是简单地使用。

你是在局部嗅探还是在局部嗅探?你是在局部嗅探还是在局部嗅探?谢谢爱德华的回答……是的,使用ETH_P_,所有功能都很好,我可以看到捕获的BPDU数据包,但使用ETH_P_802_3,可能没有捕获数据包,因为没有实现此功能。感谢Edward的回复…是的,有了ETH_P_,一切都很好,我可以看到捕获的BPDU数据包,但有了ETH_P_802_3,可能没有捕获数据包,因为没有实现这一点。