資源簡介
一個計算IP首部和TCP及UDP校驗和的驗證程序。使用方法:1.數據來源,用Wireshark抓包,復制...as a Hex Stream;2.右擊運行窗口的標題欄-->編輯-->粘貼-->回車,即可。本程序在Windows下,采用C語言開發,代碼里面注釋詳細。
代碼片段和文件信息
/***************************************************************************
?*?Copyright@caiyinwang@163.com.???????????????????????????????????????????*
?*?Author:Wang?Caiyin??????????????????????????????????????????????????????*
?*?Ver:0.1?????????????????????????????????????????????????????????????????*
?*?Date:2019-04-27?????????????????????????????????????????????????????????*
?*?Description:這是一個計算IP首部和TCP及UDP校驗和的驗證程序。??????????????*
?*?使用方法:1.數據來源,用Wireshark抓包,復制...as?a?Hex?Stream;?????????*
?*???????????2.右擊運行窗口的標題欄-->編輯-->粘貼-->回車,即可。???????????*
?***************************************************************************/
#include?
#include?
unsigned?ipheader[10]t_data[759]t;??//ipheader存儲IP首部數據,t_data存儲傳輸層數據,t為傳輸層數據類型。
//注意:傳輸層data從開頭取16bit,當結尾為8bit,將低8bit設為0x00;當然0x00不能算為數據長度
int?main()
{
void?read_data();
void?ipCheckSum();
void?tCheckSum();
printf(“請輸入您用wireshark抓包獲取的數據:“);
read_data();
printf(“\n********************************************************************************\n“);
if(t==6)
{
printf(“????您輸入的是TCP數據。\n“);
ipCheckSum();
tCheckSum();
}
else?if(t==17)
{
printf(“????您輸入的是UDP數據。\n“);
ipCheckSum();
tCheckSum();
}
else
printf(“????您輸入的數據有誤。\n“);
system(“pause“);
return?0;
}
void?ipCheckSum()
{
unsigned?sum=0;
int?i;
printf(“\n????IP首部:“);
for(i=0;i<10;i++)
{
printf(“%04x?“ipheader[i]);
sum=sum+~ipheader[i]%0x10000;
}
s
- 上一篇:四變量遺傳算法求最小值程序C++
- 下一篇:基于proteus的計算器
評論
共有 條評論