我想检查由iptables(1.4)破解的数据包的以太网头,所以我需要编写一个捕获数据包并应用我的函数的模块.我在以太网头中寻找mac目标值(仅用于测试目的),因此代码应如下所示:
static bool match(const struct sk_buff *skb, struct xt_action_param *par)
{
struct ethhdr *hdr;
hdr = eth_hdr(skb);
printk(KERN_INFO "hdr->h_dest 0x%x\n", hdr->h_dest);
printk(KERN_INFO "MACPROTO=%04x\n", hdr->h_proto);
Run Code Online (Sandbox Code Playgroud)
问题是,我不能得到正确的值,我有一些事情,甚至不是在现实框架(我检查了使用Wireshark),因此,它是正确的函数来获取以太网帧头attributs?
更新:
我使用了帖子中提供的解决方案,但仍然有错误的输出,就像结构指向错误的地方一样

这个图像显示的结果当我使用nc发送"aaa"字符串时,以太网头在to帧中应该是相同的,但是如果在结果中存在,则不是.