• 大小: 6KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-06
  • 语言: C/C++
  • 标签: C语言  

资源简介

1)以命令行形式运行:ipparse logfile,其中ipparse是程序名, 而logfile则代表记录结果的日志文件。 2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。 3)能够解析不同协议数据包 4)当程序接收到键盘输入Ctrl+C时退出

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#pragma   comment(lib“ws2_32.lib“)
typedef struct _IP_HEADER  //定义IP头
{
   union
    {
       BYTE Version;      //版本(前4位)
       BYTE HdrLen;       //IHL(后4位),报头标长
    };
    BYTE ServiceType;    //服务类型
    WORD TotalLen;       //总长
    WORD ID;             //标识
    union
    {
       WORD Flags;      //标志(前3位)
       WORD FragOff;    //分段偏移(后13位)
    };
    BYTE TimeToLive;    //生命期
    BYTE Protocol;      //协议
    WORD HdrChksum;     //头校验和    
    DWORD SrcAddr;      //源地址
    DWORD DstAddr;      //目的地址
    BYTE Options;       //选项
}IP_HEADER;
//逐位解析IP头中的信息
void getVersion(BYTE b BYTE & version)
{
version=b>>4;         //右移4位获取版本字段        
}
void getIHL(BYTE bBYTE & res

评论

共有 条评论