社区
基础编程
帖子详情
UDP校验和的计算方法
菠萝不在家
2013-07-16 10:13:32
如何求UDP的校验和,我的IP是192.168.1.59 端口号是30002
连接的机子是192.168.1.179 端口号是30000
然后 是如何求校验和的呢
...全文
858
9
打赏
收藏
UDP校验和的计算方法
如何求UDP的校验和,我的IP是192.168.1.59 端口号是30002 连接的机子是192.168.1.179 端口号是30000 然后 是如何求校验和的呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ImN1
2013-07-16
打赏
举报
回复
这个一般是系统级或网卡做的事,php很难做吧?
菠萝不在家
2013-07-16
打赏
举报
回复
就是chechsum 如何获取到,还要有字节长度吗?还需要字节长度吗? 字节长度如果是66 然后 又怎么获取到 这个checksum呢?
再来壹串
2013-07-16
打赏
举报
回复
咕~~(╯﹏╰)b 不懂
菠萝不在家
2013-07-16
打赏
举报
回复
引用 7 楼 xuzuning 的回复:
php 提供了所有的相关函数 你把你不会的部分贴出来
而且 IP如何转成16进制的? 这方面 也不会,
菠萝不在家
2013-07-16
打赏
举报
回复
$FileData=array(); ///8字节头 $FileData[0]=0x75; $FileData[1]=0x30; $FileData[2]=0x75; $FileData[3]=0x32; $FileData[4]=0x00; $FileData[5]=0x20; //------Udp 头部校验和 $a=$FileData[0]*256+$FileData[1]; $b=$FileData[2]*256+$FileData[3]; $c=$FileData[4]*256+$FileData[5]; $d=($a+$b+$c); $FileData[6]=~(($d>>8)&0xFF); $FileData[7]=~($d&0xFF); //--------------------- ///16字节数据 //标识号:01020304 $FileData[8]=0x01; $FileData[9]=0x02; $FileData[10]=0x03; $FileData[11]=0x04; //操作命令:0x00000001 $FileData[12]=0x00; $FileData[13]=0x00; $FileData[14]=0x00; $FileData[15]=0x02; //操作结果:0x00000000 $FileData[16]=0x00; $FileData[17]=0x00; $FileData[18]=0x00; $FileData[19]=0x01; //保留 $FileData[20]=0x00; $FileData[21]=0x00; $FileData[22]=0x00; $FileData[23]=0x00; //--------------------- ///8字节校验和 $FileData[24]=$FileData[0]^$FileData[8]^$FileData[16]; $FileData[25]=$FileData[1]^$FileData[9]^$FileData[17]; $FileData[26]=$FileData[2]^$FileData[10]^$FileData[18]; $FileData[27]=$FileData[3]^$FileData[11]^$FileData[19]; $FileData[28]=$FileData[4]^$FileData[12]^$FileData[20]; $FileData[29]=$FileData[5]^$FileData[13]^$FileData[21]; $FileData[30]=$FileData[6]^$FileData[14]^$FileData[22]; $FileData[31]=$FileData[7]^$FileData[15]^$FileData[23]; $arrayLen = sizeof( $FileData ); foreach($FileData as $arr) { $str.= $arr; } echo $str; //$str 应该是16字节的数据 UDP报文的数据内容定义 标识号 操作命令 操作数据(结果) 保留 4字节 4字节 4字节 4字节 所以现在就是想得到它的校验和 我上面写的校验和不对,输出的数据也不对
xuzuning
2013-07-16
打赏
举报
回复
php 提供了所有的相关函数 你把你不会的部分贴出来
菠萝不在家
2013-07-16
打赏
举报
回复
引用 5 楼 xuzuning 的回复:
找个 C 语言的代码移植一下不就可以了
有没有 例子 什么的啊。 关键php中16进制的数,是要先转成二进制的,才能进行异或求和吗?
xuzuning
2013-07-16
打赏
举报
回复
找个 C 语言的代码移植一下不就可以了
菠萝不在家
2013-07-16
打赏
举报
回复
嗯 php 这方面的不多, 而且这个校验和和传输的数据,所有的都相加, 又异或 ,再求和。。什么的。 但是 不知道 都要加哪些?
UDP
校验和
算法
UDP
校验和
算法,给出了
UDP
校验和
算法的C语言程序。
udp
校验和
计算
udp
校验和
,基于wireshark的TCP和
UDP
报文分析
IP TCP
UDP
校验和
计算
一个计算IP首部和TCP及
UDP
校验和
的验证程序。使用方法:1.数据来源,用Wireshark抓包,复制...as a Hex Stream;2.右击运行窗口的标题栏-->编辑-->粘贴-->回车,即可。本程序在Windows下,采用C语言开发,代码里面注释详细。
UDP
校验和
计算
一、
UDP
校验和
计算
UDP
计算
校验和
的方法和IP数据报首部
校验和
的方法相似。不同的是:IP数据报
校验和
只校验IP数据报的首部,但
UDP
的
校验和
是把首部和数据部分一起都检验。
UDP
的
校验和
需要计算
UDP
首部加数据荷载部分,但也需要加上
UDP
伪首部。这个伪首部指,源地址、目的地址、
UDP
数据长度、协议类型(0x11),协议类型就一个字节,但需要补一个字节的0x0,构成12个字节。伪首部+
UDP
首部+数据一起计算
校验和
。
UDP
检验和的
计算方法
是: 按每16位求和得出一个32位的数; 如果这个32位的数,高1
udp
校验和
计算方法
_程序员必备基础知识-
UDP
协议的详细解析
【关注我】,学习不迷路。关于C/C++,Linux,golang,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,ffmpeg,TCP/IP,协程,DPDK,嵌入式等学习资料,请大家加群私聊管理领取。QQ群:1106675687。一、
UDP
的概述(User Datagram Protocol,用户数据报协议)UD...
基础编程
21,891
社区成员
140,342
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章