C++計(jì)算ICMP頭的校驗(yàn)和實(shí)例
更新時(shí)間:2014年10月21日 11:30:29 投稿:shichen2014
這篇文章主要介紹了C++計(jì)算ICMP頭的校驗(yàn)和的方法,代碼簡單實(shí)用,對于校驗(yàn)ICMP報(bào)文來說有不錯(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);
}
希望本文所述對大家的C++程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- python和shell實(shí)現(xiàn)的校驗(yàn)IP地址合法性腳本分享
- 微信公眾平臺消息接口校驗(yàn)與消息接口響應(yīng)實(shí)例
- 零基礎(chǔ)學(xué)習(xí)AJAX之制作自動校驗(yàn)的表單
- Symfony數(shù)據(jù)校驗(yàn)方法實(shí)例分析
- php校驗(yàn)表單檢測字段是否為空的方法
- Codeigniter校驗(yàn)ip地址的方法
- PHP實(shí)現(xiàn)通過Luhn算法校驗(yàn)信用卡卡號是否有效
- JavaScript實(shí)現(xiàn)信用卡校驗(yàn)方法
- 詳細(xì)介紹C#之文件校驗(yàn)工具的開發(fā)及問題
相關(guān)文章
C++計(jì)算任意權(quán)值的單源最短路徑(Bellman-Ford)
這篇文章主要為大家詳細(xì)介紹了C++計(jì)算任意權(quán)值的單源最短路徑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
C++ 詳細(xì)講解stack與queue的模擬實(shí)現(xiàn)
C++ Stack(堆棧) 是一個(gè)容器類的改編,為程序員提供了堆棧的全部功能,也就是說實(shí)現(xiàn)了一個(gè)先進(jìn)后出(FILO)的數(shù)據(jù)結(jié)構(gòu),許多程序都使用了 queue 容器。queue 容器可以用來表示超市的結(jié)賬隊(duì)列或服務(wù)器上等待執(zhí)行的數(shù)據(jù)庫事務(wù)隊(duì)列2022-04-04
Opencv實(shí)現(xiàn)視頻播放與進(jìn)度控制
這篇文章主要為大家詳細(xì)介紹了Opencv實(shí)現(xiàn)視頻播放與進(jìn)度控制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C++中靜態(tài)成員函數(shù)訪問非靜態(tài)成員的實(shí)例
這篇文章主要介紹了C++中靜態(tài)成員函數(shù)訪問非靜態(tài)成員的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07
C語言中關(guān)于庫函數(shù) qsort 快排的用法
快速排序Qsort是所有學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)最基礎(chǔ)的一個(gè)部分,也是考試題和面試的一個(gè)小重點(diǎn)。本片文章帶你了解Qsort的詳細(xì)用法規(guī)則2021-09-09

