首页/网络/抓包与流量分析速查/Wireshark 过滤 User-Agent
Wireshark 技巧75 条

Wireshark 过滤 User-Agent

http.user_agent 匹配客户端标识:区分是哪个客户端(App/浏览器/脚本)在访问、确认爬虫与 SDK 行为时用得到。

过滤 User-Agent

用 http.user_agent 匹配客户端标识,可以快速区分访问来自浏览器、移动应用开发包还是脚本工具。排查「到底是谁在访问这个接口」、确认爬虫行为、或者按客户端类型切分问题时,这一条过滤非常高效。需要注意的是,客户端标识可以被随意伪造,只能作为分类参考。

基本信息

适用平台Wireshark 显示过滤器(明文 HTTP,或已解密的 HTTPS)
匹配语法http.user_agent contains "..."
正则写法http.user_agent matches "(?i)curl|wget"
前提条件流量未加密,或已配置密钥日志完成解密

典型使用场景

  • 区分客户端类型:按标识特征切分浏览器、应用与脚本
  • 定位版本问题:移动端常把版本号写进标识,便于灰度排查
  • 识别采集器:结合来源地址与请求频率一起判断
  • 排查兼容问题:空标识与缺失标识是两种状态,分别统计
  • 统计调用来源:按标识聚合,看究竟是谁在调用接口

常用示例

常用示例
http.user_agent contains "okhttp"           # 安卓客户端常用
http.user_agent contains "python-requests"   # 脚本采集
http.user_agent matches "(?i)curl|wget"      # 命令行工具
http.user_agent == ""                        # 标识为空的情况

判读要点

现象含义注意事项
标识含版本号客户端实现较规范可用来按版本排查问题
标识为空字符串客户端未填写内容与字段缺失不同
标识为常见工具名可能是脚本或采集器结合频率与来源判断
标识与来源不符可能被伪造不能作为唯一判断依据
客户端标识可以被随意伪造,把它当成身份凭证会得出错误结论。判断真实来源时要结合源地址、请求频率以及服务端日志一起看。
移动端开发包往往把应用名与版本号写进标识,按版本过滤能快速定位灰度问题,这是它最有价值的用法之一。
标识为空与字段缺失是两种不同状态:前者是客户端发了空值,后者是这条请求根本没有携带该字段。排查兼容性问题时应当分别统计。

易错点

  • 移动端开发包常把版本号写在标识里,按版本过滤可辅助灰度问题定位
  • 空标识与缺失标识是两种状态,排查兼容性问题时分别统计
  • 把标识当成可信身份:它可以被任意伪造,不能作为鉴权或审计依据
  • 加密流量未解密时该字段完全不可用,别把它当成「客户端没发送标识」

数据来源与参考

  • Wireshark 显示过滤器参考(http.user_agent)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌