• 大小: 3KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: C/C++
  • 标签: IP  TCP  UDP  C代码  

资源简介

一个计算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

评论

共有 条评论