使用sk_buff提取时,从IEEE802.11数据包的mac头打印MAC地址

时间:2014-04-06 10:18:33

标签: mac-address printk

我正在编写一个模块,用于提取无线802.11数据包的以太网Mac标头的MAC地址。我将ethernetmac标头解压缩为

ieee = (struct ieee80211_hdr *)skb_mac_header(sock_buff);
ieee->addr1[ETH_ALEN];
ieee->addr2[ETH_ALEN];
ieee->addr3[ETH_ALEN];

我想打印这些地址以查看它包含的值。如何使用printkKERN_INFO

执行此操作

目前我正在使用此语句,但它导致内核处于恐慌模式

printk(KERN_INFO "The address is %x:%x:%x:%x:%x:%x", ieee->addr1[0],ieee->addr1[1],ieee->addr1[2],ieee->addr1[3],ieee->addr1[4],ieee->addr1[5]);

1 个答案:

答案 0 :(得分:0)

嗯,根据this,addr1是u8 addr1 [ETH_LEN],所以:

printk("MAC %pM: \n", ieee->addr1);