struct mgmt_header_t {
u_int16_t fc; /* 2 bytes */
u_int16_t duration; /* 2 bytes */
u_int8_t da[6]; /* 6 bytes */
u_int8_t sa[6]; /* 6 bytes */
u_int8_t bssid[6]; /* 6 bytes */
u_int16_t seq_ctrl; /* 2 bytes */
};
void my_callback(u_char *args, const struct pcap_pkthdr *header, const u_char *packet)
{
//printf("********* New Packet Arrived *********\n");
//printf("Jacked a packet with length [%d]\n", header->len);
struct mgmt_header_t *mac_header = (struct mgmt_header_t *) (packet+24);
if (mac_header->fc > 255 )
printf("comon");
我知道 mac_header 位于正确的位置,因为我从中获取了 mac 地址并且它们是正确的,但问题是 fc 它永远不会大于 255,所以左字节总是为零
更新:
我想我现在明白了,感谢家伙和 ott--供参考这是我的完整示例http://pcap-wireless.blogspot.com/2011/11/post-2-80211-mac-header.html