小编yas*_*ine的帖子

从以太网标头打印MAC地址

我想检查由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帧中应该是相同的,但是如果在结果中存在,则不是.

c iptables linux-kernel

2
推荐指数
1
解决办法
2380
查看次数

标签 统计

c ×1

iptables ×1

linux-kernel ×1