dvfvdgfrg 2019-12-22 01:28 采纳率: 0%
浏览 282

Linux抓icmp包分析错误?

用Linux编程编写抓包协议,分析icmp报文的时候都是0

else if(p_iphdr->protocol==1){
        struct icmphdr*p_icmphdr=(struct icmphdr*)(p_iphdr+p_iphdr->ihl*4);
        if((p_icmphdr->icmp_type)==3||5||11||12){
            printf("----这个是ICMP差错报告报文----\n");

        }else{
            printf("----这个是ICMP询问报文----\n");
        }
        printf("type = %d\n ", p_icmphdr->icmp_type);
        printf("code = %d\n ", p_icmphdr->icmp_code);
        printf("id = %d\n ", p_icmphdr->icmp_id);
        printf("icmp_seq = %s\n ", ntohs(p_icmphdr->icmp_seq)); //输出序列号

这个是icmp结构体

struct icmphdr
{
    u_int8_t icmp_type;
    u_int8_t icmp_code;
    u_int16_t icmp_checksum;
    union
    {
        struct ih_idseq
        {
            u_int16_t icd_id;
            u_int16_t icd_seq;
        }ih_idseq;
    }icmp_hun;
#define icmp_id icmp_hun.ih_idseq.icd_id
#define icmp_seq icmp_hun.ih_idseq.icd_seq
    //u32  icmp_timestamp[2];//时间戳
    //ICMP数据占位符
    u_int8_t data[0];
};

结果是这样

图片说明

这个icmp报文是我用ping网站获取的
求大佬告知小白一个,感谢

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 求帮我调试一下freefem代码
    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图