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, поэтому левый байт всегда равен нулю.
ОБНОВИТЬ:
Я думаю, что понял это прямо сейчас, спасибо за парня и отта - для справки, вот мой полный пример http://pcap-wireless.blogspot.com/2011/11/post-2-80211-mac-header.html