我正在編寫一個內核模塊來從存儲在sk_buff中的數據包中獲取MAC地址。我用下面的代碼來打印源和目的地的MAC地址:從sk_buff訪問MAC地址
struct ethhdr *mh = eth_hdr(skb);
printk(KERN_EMERG "Source MAC=%x:%x:%x:%x:%x:%x\n",mh->h_source[0],mh->h_source[1],mh->h_source[2],mh->h_source[3],mh->h_source[4],mh->h_source[5]);
目的地址可以使用h_dest
地質儲量h_source
進行訪問。
我的問題是,源MAC地址始終是a8:c0:0:0:a8:c0
和目標MAC地址始終是一些垃圾值,而不是我自己的MAC地址。
任何人都可以幫我解決這個問題嗎?我想獲得正確的MAC地址。
您可以使用%pM使用printk打印mac地址。 – mcr 2015-11-07 01:30:22