C++計(jì)算ICMP頭的校驗(yàn)和實(shí)例
更新時(shí)間:2014年10月21日 11:30:29 投稿:shichen2014
這篇文章主要介紹了C++計(jì)算ICMP頭的校驗(yàn)和的方法,代碼簡(jiǎn)單實(shí)用,對(duì)于校驗(yàn)ICMP報(bào)文來(lái)說(shuō)有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了C++計(jì)算ICMP頭的校驗(yàn)和的方法,分享給大家供大家參考。具體實(shí)現(xiàn)代碼如下:
復(fù)制代碼 代碼如下:
USHORT checksum(USHORT* buff, int nSize)
{
unsigned long cksum=0;
//將數(shù)據(jù)以字為單位加到cksum
while (nSize > 1)
{
cksum += *buff++;
nSize -= sizeof(USHORT);
}
//如果為奇數(shù), 將最后一個(gè)字?jǐn)U展到雙字,再累加
if (nSize)
{
cksum += *(UCHAR*)buff;
}
//將cksum的高16位與低16位相加,取反后得到校驗(yàn)和
cksum = (cksum>>16) + (cksum&&0xffff);
cksum += (cksum>>16);
return (USHORT)(~cksum);
}
{
unsigned long cksum=0;
//將數(shù)據(jù)以字為單位加到cksum
while (nSize > 1)
{
cksum += *buff++;
nSize -= sizeof(USHORT);
}
//如果為奇數(shù), 將最后一個(gè)字?jǐn)U展到雙字,再累加
if (nSize)
{
cksum += *(UCHAR*)buff;
}
//將cksum的高16位與低16位相加,取反后得到校驗(yàn)和
cksum = (cksum>>16) + (cksum&&0xffff);
cksum += (cksum>>16);
return (USHORT)(~cksum);
}
希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- python和shell實(shí)現(xiàn)的校驗(yàn)IP地址合法性腳本分享
- 微信公眾平臺(tái)消息接口校驗(yàn)與消息接口響應(yīng)實(shí)例
- 零基礎(chǔ)學(xué)習(xí)AJAX之制作自動(dòng)校驗(yàn)的表單
- Symfony數(shù)據(jù)校驗(yàn)方法實(shí)例分析
- php校驗(yàn)表單檢測(cè)字段是否為空的方法
- Codeigniter校驗(yàn)ip地址的方法
- PHP實(shí)現(xiàn)通過(guò)Luhn算法校驗(yàn)信用卡卡號(hào)是否有效
- JavaScript實(shí)現(xiàn)信用卡校驗(yàn)方法
- 詳細(xì)介紹C#之文件校驗(yàn)工具的開(kāi)發(fā)及問(wèn)題
相關(guān)文章
C++哈希表之線性探測(cè)法實(shí)現(xiàn)詳解
線性探測(cè)法的優(yōu)點(diǎn):只要散列表未滿,總能找到一個(gè)不沖突的散列地址;缺點(diǎn):每個(gè)產(chǎn)生沖突的記錄被散列到離沖突最近的空地址上,從而又增加了更多的沖突機(jī)會(huì)2022-05-05OpenCV實(shí)現(xiàn)車(chē)牌字符分割(C++)
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)車(chē)牌字符分割,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11C++新特性詳細(xì)分析基于范圍的for循環(huán)
C++11這次的更新帶來(lái)了令很多C++程序員期待已久的for?range循環(huán),每次看到j(luò)avascript,?lua里的for?range,心想要是C++能有多好,心里別提多酸了。這次C++11不負(fù)眾望,再也不用羨慕別家人的for?range了。下面看下C++11的for循環(huán)的新用法2022-04-04C++ 打開(kāi)選擇文件夾對(duì)話框選擇目錄的操作
這篇文章主要介紹了C++ 打開(kāi)選擇文件夾對(duì)話框選擇目錄的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01數(shù)據(jù)結(jié)構(gòu)串的操作實(shí)例詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)串的操作實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07