wireshark中ip过滤分显示过滤(ip.src/ip.dst/ip.addr)、捕获过滤(host/src host/dst host)、网段匹配(contains/cidr)、逻辑组合(&&/||/!)及语法校验(绿色=正确、红色=错误),协议名须小写。

如果您在Wireshark中捕获了大量网络流量,但只想聚焦于特定主机的通信行为,则需通过IP地址过滤快速定位目标数据包。以下是多种可行的IP地址过滤方法:
一、使用显示过滤器按源或目标IP精确匹配
该方法适用于已知具体IP地址且需在捕获完成后筛选显示结果的场景,利用ip.src、ip.dst或ip.addr字段进行条件限定,语法严格区分大小写与字段层级。
1、在Wireshark主界面底部的“Filter”输入框中,输入ip.src == 192.168.1.104,仅显示源IP为192.168.1.104的数据包。
2、输入ip.dst == 192.168.1.104,仅显示目标IP为192.168.1.104的数据包。
3、输入ip.addr == 192.168.1.104,同时匹配源IP或目标IP包含该地址的所有数据包。
4、点击右侧绿色“Apply”按钮(或按Enter键),列表立即刷新为符合条件的数据包。
二、使用显示过滤器按IP网段或子网掩码范围匹配
该方法适用于需分析某一局域网段整体通信行为的情形,借助CIDR表示法或字符串包含逻辑实现批量匹配,避免逐个列举IP。
1、在Filter框中输入ip.addr contains "192.168.1",可匹配所有IPv4地址中包含“192.168.1”的数据包,覆盖192.168.1.0/24网段常见地址。
2、输入ip.addr == 192.168.1.0/24,直接使用CIDR格式过滤整个C类子网(需Wireshark版本支持,推荐3.6及以上)。
3、若需匹配多个离散IP,可组合使用逻辑运算符:输入ip.addr == 192.168.1.104 || ip.addr == 192.168.1.105,显示任一地址参与通信的数据包。
三、使用捕获过滤器在抓包阶段实时限制IP流量
该方法在开始抓包前即生效,可显著降低内存占用与磁盘写入压力,特别适合长时间监控或资源受限环境,语法基于libpcap规则,不支持==等显示过滤语法。
1、点击菜单栏“Capture” → “Options”,在弹出窗口中找到目标网卡,定位至“Capture Filter”输入框。
2、输入host 192.168.1.104,仅捕获与该IP相关的双向流量(等效于src host 192.168.1.104 or dst host 192.168.1.104)。
3、输入src host 192.168.1.104,仅捕获从该IP发出的数据包。
4、输入dst host 192.168.1.104,仅捕获发往该IP的数据包。
5、点击“Start”启动抓包,此时Wireshark仅接收符合过滤条件的数据包。
四、混合使用逻辑运算符构建复合IP过滤条件
该方法用于精确定位跨主机、跨协议的特定交互路径,例如客户端与服务端之间某次HTTP会话的完整往返,需联合IP与传输层字段约束。
1、在Filter框中输入ip.src == 192.168.1.104 && ip.dst == 192.168.1.105 && tcp.port == 80,筛选从104到105且端口为80的TCP流量。
2、输入(ip.addr == 192.168.1.104 || ip.addr == 192.168.1.105) && http,显示两台主机间所有HTTP协议数据包。
3、输入ip.addr == 192.168.1.104 && !icmp,排除ICMP协议,仅保留104参与的非ICMP通信。
五、利用智能提示与语法校验避免常见错误
Wireshark内置语法高亮机制可实时反馈过滤表达式有效性,红色背景表示语法错误,绿色背景表示可接受,此功能对初学者排查字段拼写与层级关系极为关键。
1、在Filter输入框中输入ip.后暂停,等待下拉列表自动弹出所有可用字段(如ip.src、ip.dst、ip.len等)。
2、输入ip.port时界面变红——这是错误写法,IP层无port字段,应改用tcp.port或udp.port。
3、输入http and ip.addr == 192.168.1.104时若变红,检查空格是否为全角字符,确保所有符号均为ASCII半角。
4、确认协议名必须小写:输入HTTP或Http均无效,正确写法仅为http、tcp、icmp等小写字母组合。










