问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

rarp结构体是什么,我c程序中抓包后怎么提取rarp中的数据

发布网友 发布时间:2022-04-22 15:32

我来回答

2个回答

热心网友 时间:2023-11-10 22:56

这是正常的。是C/C++编译系统对结构体字节对齐的结果。可以指定选项改变这一结果.

有的C/C++编译系统默认是双字(8字节)对齐,有的C/C++编译系统默认是字(4字节)对齐。意思是,每个结构成员都从某一倍数进行地址分配。比如你的情况:无论是4字节对齐还是8字节对齐,因为char szArray[6]占6个字节,unsigned long nNum 就要空出2个字节,以便从4或8的倍数分配地址。这两个字节的内容就是不确定的。
如果想避免这种情况,应尽可能使用char或unsigned char, 最好定义为4的倍数。也可以根据以下原则:
8字节长的结构成员类型(如double)偏移在8的倍数上,4字节长的结构成员类型(如int)偏移在4的倍数上,2字节成员类型(如short)偏移在2的倍数上,一字节长的成员类型(如char)不限。
如:
typedef struct {
char szArray[6];
short mmy;
unsigned int uNum;
} MYSTRUCT;

如果有些结构不是自己能左右的,如你要用的ARP包,我是这样说明的:

typedef struct ARP {
u_short arpHardType; //Type of hardware address
u_short arpProtoType; //Type of address to map to
u_char arpHardSize; //Size (in bytes) of hardware address
u_char arpProtoSize; //Size (in bytes) of address to map to
u_short arpOpType; //ARP Operation Type (Request/Response) or RARP types
u_char arpSenderMAC[6];//MAC address of packet originator
u_char arpSenderIP[4]; //IP address of packet originator
u_char arpDestMAC[6]; //MAC address of the target host (or broadcast)
u_char arpDestIP[4]; //IP address of target host
} ARP;
中的 arpDestIP, 偏移在24,他本身长4,所以说明成 unsigned int也是没问题的。但是arpSenderIP就偏移在14, 不是4的倍数。如果说明为unsigned int, 他前面就要空出两个字节。作为特定的ARP包就不对了。因此这里把两个IP地址都说明为unsigned char数组。
(上面的说明刚才说颠倒了。现已更正)
如果考虑用u_int编程更方便,也可以说明为u_int.但那样就必须选择以1或2字节对齐。如VC指定编译选项/Zp1或/Zp2; 如果是VC IDE, 可在工程-设置-C/C++, 分类选code generation, 在Struct Member Alignment中有对齐方式。选择1 Byte或2 Bytes.
GCC可以在结构说明中指定,如:
typedef struct {
char szArray[6];
unsigned long __attribute__ ((packed)) nNum;
} MYTYPE;

热心网友 时间:2023-11-10 22:57

我的做法是,shell cmd /c ipconfig /all > ipmac.txt
再 find "mac addr" ipmac.txt
得到还有mac address 的行。
mid(该行, instr(":")) 等等函数。获取之。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美国男篮有哪些优势和不足呢 tbc法师寒冰刺骨要点吗 有人在淘宝店里买的"Coolpad/酷派 9930 5寸米米Pad2智能手机 5.3寸平板... 酷派8730、联想K860、三星I9200和S2哪个好 ...大概5寸吧,求帮忙到底该不该买?具体点,谢了哈。O(∩_ 安卓2.3优美X3评测:又一部5.3吋巨屏猛机 三星i9250和i9220哪个好 i9250对比i9220评测 请将无限循环小数2点155的循环化成分数 为什么我的QQ会被封禁 5s冲电玩的时候发热,是正常吗 骆驼祥子第二章读书笔记200字? 骆驼祥子第二章读后感,200字,拒绝长篇大论 急需骆驼祥子第一二三章读后感200字左右 骆驼祥子第二章读后感 200字左右 骆驼祥子的读后感,2篇,200字。不要重复,给好评 骆驼祥子第二章读书笔记!!第二章!! 求2篇骆驼祥子读后感 骆驼祥子(2到5)读后感600字 骆驼祥子第二段的读后感 骆驼祥子读后感二三百字 骆驼祥子第二章读后感 自学葫芦丝 葫芦丝的指法 葫芦丝教程 葫芦丝教学视频葫芦丝怎样 我姓杨取什么名字最好啊?做机电的1984年的 葫芦丝视频教程在哪里下载 学习葫芦丝的教程? 想自学葫芦丝,有没有推荐的教材或视频? 急求葫芦丝初学者教学视频,最好是可以下载的 抓包精灵 激活码怎么能弄上? 笔记本wireshark抓包前需要wifi精灵吗 怎么样看懂一个人? 新手怎么看懂股票 怎么看懂书里的内容 怎么看懂一部电影 怎么读懂别人的眼神 怎么才能看懂股票 如何看懂史记? 怎样读懂文章的意思用什么方法举几个例 十岁的孩子发高烧 10岁孩子爱发脾气,爱动手打人,该怎么办呢? 10岁小孩发烧38.6怎么办 十岁的小孩容易发脾气,而且很暴躁怎么办? 华为手机不知道了什么,突然就有语音播报了? 华为手机突然按键不顶事了,还出现了语音,? 十岁小孩掉头发是什么原因 华为nova7pro微信按键声怎么关? 10岁小孩发烧了,用什么方法退热比较快 十岁孩子的头发怎么扎