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 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?