Wireshark抓包过滤器ICMP协议字段:详细参考

Wireshark抓包过滤器ICMP协议字段:详细参考

【免费下载链接】wireshark Read-only mirror of Wireshark's Git repository at https://gitlab.com/wireshark/wireshark. ⚠️ GitHub won't let us disable pull requests. ⚠️ THEY WILL BE IGNORED HERE ⚠️ Upload them at GitLab instead. 【免费下载链接】wireshark 项目地址: https://gitcode.com/gh_mirrors/wi/wireshark

ICMP协议基础

ICMP(Internet控制消息协议)是TCP/IP协议族的核心协议之一,主要用于诊断网络连接问题和传递控制消息。在Wireshark中,ICMP协议字段是网络故障排查的关键分析对象。

抓包过滤器基础语法

Wireshark抓包过滤器使用Berkeley Packet Filter(BPF)语法,ICMP相关过滤规则需遵循以下格式:

icmp[字段偏移量:长度] 操作符 值

例如过滤ICMP回显请求:icmp[0] == 8

核心ICMP协议字段

类型字段(Type)

  • 偏移量:0字节,长度:1字节
  • 常用值:
    • 8:回显请求(Ping请求)
    • 0:回显应答(Ping响应)
    • 3:目标不可达
    • 11:超时

过滤示例

icmp[0] == 8  // 只捕获Ping请求
icmp[0] == 3 and icmp[1] == 1  // 捕获主机不可达消息

代码字段(Code)

  • 偏移量:1字节,长度:1字节
  • 与类型字段配合使用,细化消息类型

常见组合: | 类型 | 代码 | 含义 | |------|------|------| | 3 | 0 | 网络不可达 | | 3 | 1 | 主机不可达 | | 3 | 2 | 协议不可达 | | 11 | 0 | 传输超时 |

校验和字段(Checksum)

  • 偏移量:2字节,长度:2字节
  • 用于验证ICMP报文完整性,过滤示例:icmp[2:2] == 0x1234

高级过滤技巧

组合条件过滤

icmp[0] == 8 and ip src 192.168.1.1  // 捕获来自特定IP的Ping请求

按数据长度过滤

icmp[8:]  // 过滤ICMP报文数据部分
icmp[8:4] == 0xdeadbeef  // 匹配特定数据内容

协议实现参考

ICMP协议解析在Wireshark源码中主要通过以下文件实现:

实际应用场景

网络连通性测试

icmp[0] == 8 or icmp[0] == 0  // 捕获所有Ping请求和响应

异常流量监控

icmp[0] == 3 or icmp[0] == 5 or icmp[0] == 11  // 捕获网络错误消息

注意事项

  1. 抓包过滤器在捕获时生效,不同于显示过滤器
  2. 偏移量从0开始计数
  3. 多字节字段需考虑字节序
  4. 复杂过滤规则建议结合IP层过滤条件

官方文档参考

【免费下载链接】wireshark Read-only mirror of Wireshark's Git repository at https://gitlab.com/wireshark/wireshark. ⚠️ GitHub won't let us disable pull requests. ⚠️ THEY WILL BE IGNORED HERE ⚠️ Upload them at GitLab instead. 【免费下载链接】wireshark 项目地址: https://gitcode.com/gh_mirrors/wi/wireshark

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值