C++计算ICMP头的校验和实例

本文实例讲述了C++计算ICMP头的校验和的方法,分享给大家供大家参考。具体实现代码如下:

代码如下:

USHORT checksum(USHORT* buff, int nSize) 

    unsigned long cksum=0; 
    //将数据以字为单位加到cksum 
    while (nSize > 1) 
    { 
        cksum += *buff++; 
        nSize -= sizeof(USHORT); 
    } 
 
    //如果为奇数, 将最后一个字扩展到双字,再累加 
    if (nSize) 
    { 
        cksum += *(UCHAR*)buff; 
    } 
    //将cksum的高16位与低16位相加,取反后得到校验和 
    cksum = (cksum>>16) + (cksum&&0xffff); 
    cksum += (cksum>>16); 
    return (USHORT)(~cksum); 
}

希望本文所述对大家的C++程序设计有所帮助。

(0)

相关推荐

  • 微信公众平台消息接口校验与消息接口响应实例

    本文实例讲述了微信公众平台消息接口校验与消息接口响应的方法.分享给大家供大家参考.具体分析如下: 开发微信公众平台消息接口过程中,我们首先需要验证消息接口的有效性,验证通过后,才可以进行其他开发,首先我们来看一下微信公众平台给我的 PHP SDK. 1.需要设置一个 TOKEN 信息,代码如下: 复制代码 代码如下: efine("TOKEN", "weixin"); 这个 TOKEN 信息可以由开发者自行设定. 2.有个 wechatCallbackapiTest

  • PHP实现通过Luhn算法校验信用卡卡号是否有效

    本文实例讲述了PHP实现通过Luhn算法校验信用卡卡号是否有效的方法.分享给大家供大家参考.具体实现方法如下: $numbers = "49927398716 49927398717 1234567812345678 1234567812345670"; foreach (split(' ', $numbers) as $n) echo "$n is ", luhnTest($n) ? 'valid' : 'not valid', '</br>'; fu

  • 零基础学习AJAX之制作自动校验的表单

    传统网页在注册时检测用户名是否被占用,传统的校验显然缓慢笨拙. 当ajax出现后,这种体验有了很大的改观,因为在用户填写表单时,签名的表单项已经发送给了服务器,然后根据用户填写好的内容进行数据查询.在查询号无需页面刷新就自动给了提示.类似这样的应用大大的提高了用户的体验,本节简单介绍自动校验表单制作方法.从原理上分析ajax的作用. 1.搭建框架 首先为html框架 复制代码 代码如下: <form name="register">             <p>

  • Codeigniter校验ip地址的方法

    本文实例讲述了Codeigniter校验ip地址的方法.分享给大家供大家参考.具体分析如下: 这里演示了Codeigniter如何获取用户ip地址,同时校验ip地址的有效性 获取用户ip: $this->input->ip_address(); //如果ip获取失败,则返回 0.0.0.0,我们也可以使用下面的代码校验ip的有效性 $ip = "192.168.1.1"; if (!$this->input->valid_ip($ip)) { echo &quo

  • 详细介绍C#之文件校验工具的开发及问题

    .加密算法的熟悉     目前校验文件使用最多的是MD值和SHA值,不外乎有些使用CRC,前段时间微软发布了VisualStudio正式版,win镜像,微软官方给出的校验方式都是校验文件的SHA值.    C#进行MD加密与SHA加密的实现总结在这里 .文件的加密计算 知道了如何进行普通字符串的加密还不够,我们要校验的文件的MD值或SHA值,接下来熟悉如何获取文件的MD值和SHA值 获取文件的MD值 public static string GetFileMD(string filePath)

  • Symfony数据校验方法实例分析

    本文实例讲述了Symfony数据校验方法.分享给大家供大家参考.具体分析如下: 校验在web应用程序中是一个常见的任务.数据输入到表单需要被校验.数据在被写入数据库之前或者传入一个webservice时也需要被校验. Symfony2 配备了一个Validator 组件,它让校验工作变得简单易懂.该组件是基于JSR303 Bean校验规范.一个Java规范用在PHP中. 基本验证 理解校验的最好方法是看它的表现.首先,假设你已经创建了一个用于你应用程序某个地方的PHP对象. 复制代码 代码如下:

  • php校验表单检测字段是否为空的方法

    本文实例讲述了php校验表单检测字段是否为空的方法.分享给大家供大家参考.具体如下: php校验表单,检测字段是否为空,当表单中有未填写的字段,则会显示错误信息. <html> <body> <form METHOD="POST" ACTION="ErrorCheck.php"> <h1>Contact Information</h1> <label>Nickname:</label>

  • python和shell实现的校验IP地址合法性脚本分享

    一.python校验IP地址合法性 执行效果: python代码: 复制代码 代码如下: [root@yang python]# vi check_ip.py #!/usr/bin/python import os,sys def check_ip(ipaddr):         import sys         addr=ipaddr.strip().split('.')   #切割IP地址为一个列表         #print addr         if len(addr) !=

  • JavaScript实现信用卡校验方法

    本文实例讲述了JavaScript实现信用卡校验方法.分享给大家供大家参考.具体分析如下: 这里JavaScript版的信用卡校验代码,采用了Luhn算法 function isValidCreditCard(type, ccnum) { if (type == "Visa") { // Visa: length 16, prefix 4, dashes optional. var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/; } else if (typ

  • C++计算ICMP头的校验和实例

    本文实例讲述了C++计算ICMP头的校验和的方法,分享给大家供大家参考.具体实现代码如下: 复制代码 代码如下: USHORT checksum(USHORT* buff, int nSize)  {      unsigned long cksum=0;      //将数据以字为单位加到cksum      while (nSize > 1)      {          cksum += *buff++;          nSize -= sizeof(USHORT);      } 

  • python 计算文件的md5值实例

    较小文件处理方法: import hashlib import os def get_md5_01(file_path): md5 = None if os.path.isfile(file_path): f = open(file_path,'rb') md5_obj = hashlib.md5() md5_obj.update(f.read()) hash_code = md5_obj.hexdigest() f.close() md5 = str(hash_code).lower() re

  • IOS中计算缓存文件的大小判断实例详解

    IOS中计算缓存文件的大小判断实例详解 IOS中计算缓存文件的大小判断,在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长. 实例代码: //获取缓存文件路径 -(NSString *)getCachesPath{ // 获取Caches目录路径 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCaches

  • vue-resource拦截器设置头信息的实例

    使用vue-resource,设置头信息: Vue.http.interceptors.push((request, next) => { request.headers.set('Authorization', token) console.log(request.headers) next(response => { console.log(response.status) return response }) }) 以上这篇vue-resource拦截器设置头信息的实例就是小编分享给大家

  • C# listview 点击列头排序的实例

    实例如下: #region 自定义变量 int currentCol = -1; bool sort; #endregion//列头点击事件 private void lvw_ColumnClick(object sender, ColumnClickEventArgs e) { string Asc = ((char)0x25bc).ToString().PadLeft(4, ' '); string Des = ((char)0x25b2).ToString().PadLeft(4, ' '

  • php下载文件,添加响应头的简单实例

    如下所示: //下载,添加响应头信息 header('Content-type:application/octet-stream'); header('Content-Disposition:attachment;filename="'.basename($file).'"'); header('Content-Length:'.filesize($file)); readfile($file); 以上就是小编为大家带来的php下载文件,添加响应头的简单实例的全部内容了,希望对大家有所

  • python 读取DICOM头文件的实例

    用dicompyler软件打开dicom图像,头文件如图所示: 当然也可以直接读取: ds = dicom.read_file('H:\Data\data\\21662\\2.16.840.1.113662.2.0.105002416.1489146183.701\CT\\CT#0#21662#E7AB693D.dcm') print ds >> (0008, 0008) Image Type CS: ['ORIGINAL', 'SECONDARY', 'AXIAL'] (0008, 0016

  • python计算无向图节点度的实例代码

    废话不多说了,直接上代码吧: #Copyright (c)2017, 东北大学软件学院学生 # All rightsreserved #文件名称:a.py # 作 者:孔云 #问题描述:统计图中的每个节点的度,并生成度序列 #问题分析:利用networkx.代码如下: import networkx as nx G=nx.random_graphs.barabasi_albert_graph(1000,3)#生成n=1000,m=3的无标度的图 print ("某个节点的度:",G.d

  • Python 简单计算要求形状面积的实例

    有个Q友问怎么写个程序能按照要求输入,再输出对应形状的面积? 我大概写了几行,没有考虑输出异常,重点想记录下 int 的接收,如下图 知识点就两个 1, 长方形面积 & 三角形面积,因为要从终端接收用户的多个参数输入,所以用了map(int, raw_input().split()) 这种方式 2. 圆面积只想保留小数点后两位,就用到了 %.2f 来接收 #!/usr/bin/python #-*-coding:utf-8 -*- name = raw_input("Please inp

  • python计算二维矩形IOU实例

    计算交并比:交的面积除以并的面积. 要求矩形框的长和宽应该平行于图片框.不然不能用这样的公式计算. 原理,从一维上来理解:两条红线的距离之和减去黑色线之间的距离就是相交的距离.两条红线之和很容易算,两条黑线之间的距离就是最小的起点到到最大的末点,最小的起点好算,最大的末点就是两点加上各自长度之后的最大值.这就算出了一维的情况,二维的情况一样,计算二次而已. def iou(rect1,rect2): ''' 计算两个矩形的交并比 :param rect1:第一个矩形框.表示为x,y,w,h,其中

随机推荐