今天用winpcap截取ARP包,结果ARP输出的IP地址和MAC地址格式,总是出现问题
ARP的结构体定义如下:
利用printf("%d/n",sizeof(struct ARP));
发现输出结构体的大小为32,而不是28,所以输出MAC地址和IP地址的时候出现了错误
上网查了很多,最后用强制结构体紧凑分配空间
在程序开始处,添加
#pragma pack(1)
再输出ARP结构的大小为28,再输出ARP的MAC和IP,结果显示正确了!
今天用winpcap截取ARP包,结果ARP输出的IP地址和MAC地址格式,总是出现问题
ARP的结构体定义如下:
利用printf("%d/n",sizeof(struct ARP));
发现输出结构体的大小为32,而不是28,所以输出MAC地址和IP地址的时候出现了错误
上网查了很多,最后用强制结构体紧凑分配空间
在程序开始处,添加
#pragma pack(1)
再输出ARP结构的大小为28,再输出ARP的MAC和IP,结果显示正确了!