题目1475:IP数据包解析

该程序读取输入的IP数据包信息,通过字符转换为数字的函数计算IP地址和端口号,并输出结果。它首先计算IP头部长度,然后分别输出源IP、目的IP、源端口和目的端口的详细信息。
摘要由CSDN通过智能技术生成
#include<stdio.h>  
#include<string.h>  
int num(char *c) 
{               // 字符转换为数字   
    if (*c >= '0'&&*c <= '9') return *c - '0';
    else return *c - 'a' + 10;
}
int sum1(char *p) 
{
    // 求地址   
    return 16 * num(p) + num(p + 1);
}
int sum2(char *p) 
{             // 求端口   
    return 256 * 16 * num(p) + 256 * num(p + 1) + 16 * num(p + 3) + num(p + 4);
}
int main() 
{
    int n, c = 1;
 
    while (scanf("%d", &n) != EOF) 
     
    {
        char str[1000];
        gets(str);
        while (n--) 
        {
 
            gets(str);                    //从缓冲区获取字符串    
            int IHL = num(str + 1) * 4 * 3;      //计算i
包括源程序和详细的使用说明个,同时内付相关的软件 编程环境: 操作系统:Windows XP SP2 开发语言:C++ / MFC 编译环境:MS Visual C++6.0 第3方函数库:Winpcap3.1 使用说明: 1. 启动: 程序启动后首先出现网卡选择对话框,如图1所示,在设备列表中选择需要进行捕获的网卡。 2. 界面: 选择网卡后出现程序主界面,界面设计主要参照了一款比较优秀的网络协议分析工具Iris的图形化界面,采用切分窗口风格,整个程序界面分为三部分:左侧为树形视图,右侧上半部分为列表视图,右侧下半部分为编辑视图 3. 功能: 1) 如果不做任何设置,程序默认为混杂模式,点击按钮① 后,程序开始捕获网络上传输的所有数据包,并将它们显示在列表视图中。点击按钮② 停止捕获。 2) 点击列表视图中的某一行后,对应于该数据包的详细字段分析和原始数据将分别显示在左侧树形视图和右下的编辑视图中,如图2所示。 3) 列表视图中显示的最大数据包数量为2000条,超过后列表视图将清空并重新开始。另外程序还提供了在任意时刻清空当前列表视图中所有数据包的命令(提供该命令的原因是经常会有这样的情况:即列表视图中已经有了很多消息了,但目前只需要关注从即刻起之后到来的消息,这时以前的消息就不再有用并且会影响我们对所要消息的选择)。要使用该命令请在列表视图中任意位置单击鼠标右键,在弹出的菜单中选择“全部清空”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值