博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IP首部校验和计算
阅读量:5371 次
发布时间:2019-06-15

本文共 848 字,大约阅读时间需要 2 分钟。

根据RFC1071文档的计算方法,编写代码实现IP首部校验和的计算

 

计算步骤:

1.首先将IP首部中校验和字段置0

2.将IP首部每16bit进行相加,如果有进位产生,则将进位加到最低位。

3.将计算的结果取反即可

 

1 unsigned short checksum(int count,unsigned short* addr) 2 { 3     long sum = 0; 4  5     while(count > 1) 6     { 7         sum   +=*addr++; 8         count -= sizeof(unsigned short); 9     }10 11     if(count > 0)12     {13         sum  +=*(unsigned char*)addr;14     }15 16     while(sum >> 16)17     {18         sum = (sum & 0xFFFF) + (sum >> 16);19     }20     21     return (unsigned short)(~sum);22 }23 int main(int argc,char* argv[])24 {25     unsigned char IpHeader[] = "\xa1\x00\x00\x45\x00\x00\x21\x2c\x00\x00\x11\x01\x2f\x0a\x1e\xac\xfa\xff\xff\xef"; //抓包实例  检验和是0xe6e326 27     printf("0x%0x\n",checksum(sizeof(IpHeader)-1,(unsigned short *)IpHeader));28   29     return 0;30 }

 

转载于:https://www.cnblogs.com/gtxvs/p/6016806.html

你可能感兴趣的文章
windows下面安装Python和pip教程
查看>>
Java 动态向 JTable 中添加数据
查看>>
平安科技移动开发二队技术周报(第九期)
查看>>
Oracle【二维表管理:约束】
查看>>
2017-2018-1 20155307 《信息安全系统设计基础》第5周学习总结
查看>>
微软职位内部推荐-Principal Dev Manager for Windows Phone Apps
查看>>
jquery改变元素属性值(转)
查看>>
《额尔古纳河右岸》读书笔记
查看>>
C#Virtual和Override的几种组合
查看>>
JavaScript总结之DOM基本操作(三)
查看>>
为Vmware硬盘减肥瘦身
查看>>
python-flask学习
查看>>
Controller与View数据传递 多Model传递
查看>>
arm 汇编小练习
查看>>
RegQueryValueEx函数
查看>>
漫谈数据库索引
查看>>
【NOIP2004】合唱队形
查看>>
spring面试题
查看>>
python使用pickle,json等序列化dict
查看>>
php进行文件的强制下载
查看>>