IP报头检验和算法的python实现
来源:互联网 发布:miui msa是什么软件 编辑:程序博客网 时间:2024/06/05 06:52
进击的麦兜兜的博客
(1)
(2)
(3)
在接收方,要验证数据的正确性,按如下步骤:
(1)
(2)
(3)
在一般的协议栈中,这个检验和算法的实现大多为C语言写的,因为C语言不光移植
性好,而且执行效率也高,算法如下:
{
}
00000000
00000000 01001110
10010101 01010110
00000000 00000000
10000000
00100011
11000110 01100000
00001010 01101000 00000100 00011010
00001010 01101000 00000101 11111111
我们是要运行checksum函数,把返回的sum结果填到checksum字段。
基本过程就是,将IP头部(包括可选项)以32位为单位进行进位加法运算,将得到的结果的低16位和高16相加,然后最终结果取反即我们的checksum。
然后接收方可进行校验。
以上参考:
http://hi.baidu.com/zengzhaonong/blog/item/c933102403bc1530c89559fb
下面看看如何在python中实现:
#!usr/bin/python
import readpcapfile
import struct
def IP_headchecksum(IP_head):
packet_data =
readpcapfile.rdpcap('C:\\Python25\\code\\pcap\\PcapReader\\pcap\\test_ether.pcap')
# get the first packet of IP field (20 bytes)
tem = packet_data[0][1][14:34]
result = IP_headchecksum(tem)
print result
结果是-65536,是65535的补码。
其中的IP数据包用到了以前写的读取pcap文件的模块。
- IP报头检验和算法的python实现
- ip检验和算法分析与实现
- 增量式修改检验和(IP, TCP, UDP)算法的研究和实现
- 增量式修改检验和(IP, TCP, UDP)算法的研究和实现
- 【TCP/IP】检验和算法
- IP 报头的格式
- IP首部及检验和算法
- 容易被忽视的IP报头中的Checksum校验和
- TCP/IP检验和的理解
- 对IP首部检验和的理解
- 对IP首部检验和的理解
- 对IP首部检验和的理解
- IP首部检验和
- ip报头
- ip 报头
- IP报头
- IP报头
- Internet checksum 因特网检验和的算法
- 使用PHP函数写验证码截取一些字符串
- python环境搭建
- 关于配置SmartConfig导致ESP8266频繁硬件复位的问题
- 初见Android中的布局
- 数据库基础操作语句
- IP报头检验和算法的python实现
- 使用webdriver+urllib下载哈哈网所有图片
- Android NDK开发之最简单的As版本 hello world
- Amazon Aurora详解
- 现代软件工程-构建之法(第二单元)
- Linux 防火墙 iptables 命令详解
- Java语言程序设计基础(5)【字符串】
- APP 支付宝支付,服务端处理
- 使用PHP制作一个验证码