andy_ker 2014-12-29 08:52 采纳率: 50%
浏览 3164

sk_buff和ethhdr结构体中怎么获得源mac地址?并将类型转换

请教各位大神,写的这段代码功能没有实现,求指教!

static size_t _format_mac_addr(char *buf, int buflen,const unsigned char *addr, int len)//mac地址转换函数,转为 aa:aa:aa:aa:aa:aa 这类
{
int i;
char *cp = buf;
for (i = 0; i < len; i++) {
cp += scnprintf(cp, buflen - (cp - buf), "%02x", addr[i]);
if (i == len - 1)
break;
cp += scnprintf(cp, buflen - (cp - buf), ":");
}
return cp - buf;
}

unsigned int hook_func(unsigned int hooknum,struct sk_buff *skb,const struct net_device *in,const struct net_device *out,int (*okfn)(struct sk_buff *))//获取源mac地址并和本机mac地址对比
{
char buffer[20];
u8 haddr[20];
struct ethhdr *eth;
eth=(struct ethhdr *)skb_mac_header(skb);
memcpy(haddr,eth->h_source,6);

_format_mac_addr(buffer, 18, haddr, 6);
if(strcmp(buffer,"b8:88:e3:72:31:44")==0)   
    return NF_ACCEPT;
else
    return NF_DROP;

}

  • 写回答

1条回答 默认 最新

  • oyljerry 2014-12-29 13:25
    关注

    设置断点单步调试跟踪一下,看具体代码跑到哪里有问题

    评论

报告相同问题?

悬赏问题

  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 哪个tomcat中startup一直一闪而过 找不出问题
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码