请教 linux 协议栈内如何获取本机MAC地址?

zzy853 2018-01-10 10:54:29
交换机,linux系统
在协议栈内进行数据截取,如果是发往本机的数据就不处理,
所以需要获取到"br0"的MAC地址与数据包的目的MAC进行比较判断
请问在协议栈内如何获取本机"br0"的mac ??
...全文
2051 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
piaofeng84 2020-01-08
  • 打赏
  • 举报
回复 1
用函数is_etherdev_addr就可以判断数据表的目的mac是不是本机的mac了。
Evan_ZGYF丶 2018-05-21
  • 打赏
  • 举报
回复
再添加一些内容,net_device结构体的填充是在执行netdev_add函数的时候进行的,具体在网卡驱动的probe函数那边应该
code_gou 2018-05-15
  • 打赏
  • 举报
回复
我去,这个不是内核源码区吗?
yyyyyyyuande 2018-04-10
  • 打赏
  • 举报
回复
。学习了。这个函数一直在用,直到看了这篇文章才知道net_device结构体含有mac地址,见识浅薄啊,之前尝试获取mac地址的时候是采取这样的方法,根据进来的报文目的ip地址匹配本机IP后获取其目的mac的方式。这里想问楼主一下, 假如本机有多个接口,例如eth0, eth1...,那该如何在内核层面获取所有接口呢,
zzy853 2018-01-10
  • 打赏
  • 举报
回复 2
自己找到了方法, 用 dev_get_by_name(&init_net,"br0") 可以获取到net_device结构体, 里面的 dev_addr 参数就是MAC地址

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧