Wireshark 使用教程 | 抓包分析与应用实践

注:本文为 "Wireshark 使用教程" 教程合辑。

图片清晰度受引文原图所限。

略作重排,如有内容异常,请看原文。


超详细的 Wireshark 抓包使用教程

普通网友 于 2024-05-07 发布

Wireshark 是一款广泛使用的网络封包分析软件,能够截取各种网络数据包并显示其详细信息。它在开发测试过程中常用于问题定位。本文主要内容包括:

  1. Wireshark 软件的下载、安装及主界面介绍。
  2. Wireshark 简单抓包示例,包括抓包操作及基本的数据包查看与分析方法。
  3. Wireshark 过滤器的使用,涵盖抓包过滤器和显示过滤器的设置与应用。

Wireshark 软件安装

软件下载路径为 Wireshark 官网。根据系统版本选择相应版本下载,并按照软件提示完成安装。

说明:对于 Windows 10 系统,安装完成后若选择抓包但不显示网卡,需下载 Win10pcap 兼容性安装包。

Wireshark 开始抓包示例

本节通过一个使用 Wireshark 抓取 ping 命令操作的示例,介绍抓包的具体过程。

  1. 打开 Wireshark 2.6.5,主界面如下:

  2. 选择菜单栏中的 CaptureOption ,勾选 WLAN 网卡(根据各自电脑网卡使用情况选择,可参考 IP 对应的网卡)。点击 Start 启动抓包。

  3. Wireshark 启动后,处于抓包状态。

  4. 执行需要抓包的操作,例如在命令提示符窗口下执行 ping www.baidu.com

  5. 操作完成后,相关数据包已被抓取。为避免其他无关数据包影响分析,可在过滤栏设置过滤条件进行数据包列表过滤。例如,ip.addr == 119.75.217.26 and icmp 表示仅显示 ICMP 协议且源主机 IP 或目标主机 IP 为 119.75.217.26 的数据包。注意协议名称需小写。

  6. Wireshark 抓包完成。关于 Wireshark 显示过滤条件、抓包过滤条件以及如何查看数据包中的详细内容将在后续部分介绍。

Wireshark 抓包界面介绍

说明 :数据包列表区中,不同协议使用不同颜色区分。协议颜色标识可在菜单栏 ViewColoring Rules 中设置。

Wireshark 主要界面组成

  1. Display Filter(显示过滤器) :用于设置过滤条件进行数据包列表过滤。菜单路径为 AnalyzeDisplay Filters

  2. Packet List Pane(数据包列表):显示捕获到的数据包,每个数据包包含编号、时间戳、源地址、目标地址、协议、长度以及数据包信息。不同协议的数据包使用不同颜色区分显示。

  3. Packet Details Pane(数据包详细信息):在数据包列表中选择指定数据包后,此面板将显示数据包的所有详细信息内容。它是分析协议字段的关键部分,信息行包括:

    • Frame:物理层的数据帧概况。
    • Ethernet II:数据链路层以太网帧头部信息。
    • Internet Protocol Version 4:互联网层 IP 包头部信息。
    • Transmission Control Protocol:传输层 TCP 数据段头部信息。
    • Hypertext Transfer Protocol:应用层 HTTP 协议信息。
  4. Dissector Pane(数据包字节区):显示数据包的字节内容。

Wireshark 过滤器设置

初学者使用 Wireshark 时,可能会捕获到大量冗余数据包,难以找到所需部分。Wireshark 提供了两种过滤器,帮助用户在大量数据中快速定位所需信息。

1. 抓包过滤器

抓包过滤器的菜单路径为 CaptureCapture Filters,用于在捕获数据包前设置过滤规则。

使用方法 :在捕获数据包前设置过滤条件。例如,ip host 60.207.246.216 and icmp 表示仅捕获主机 IP 为 60.207.246.216 的 ICMP 数据包。

2. 显示过滤器

显示过滤器用于在捕获数据包后设置过滤条件,以便对数据包进行筛选。通常在捕获条件较宽泛或未设置过滤规则时使用。

示例 :在未设置捕获规则的情况下,直接通过网卡捕获所有数据包后,使用 ip.addr == 211.162.2.183 and icmp 过滤条件提取分析信息。

Wireshark 过滤器表达式规则

1. 抓包过滤器语法和实例

抓包过滤器包含以下元素:类型(Type,如 host、net、port)、方向(Dir,如 src、dst)、协议(Proto,如 ether、ip、tcp、udp、http、icmp、ftp 等)以及逻辑运算符(&& 与、|| 或、!非)。

  • 协议过滤:直接在抓包过滤框中输入协议名。例如:

    • tcp:仅显示 TCP 协议的数据包。
    • http:仅显示 HTTP 协议的数据包。
    • icmp:仅显示 ICMP 协议的数据包。
  • IP 过滤

    • host 192.168.1.104:捕获与 192.168.1.104 相关的所有数据包。
    • src host 192.168.1.104:仅捕获源地址为 192.168.1.104 的数据包。
    • dst host 192.168.1.104:仅捕获目标地址为 192.168.1.104 的数据包。
  • 端口过滤

    • port 80:捕获端口为 80 的数据包。
    • src port 80:仅捕获源端口为 80 的数据包。
    • dst port 80:仅捕获目标端口为 80 的数据包。
  • 逻辑运算符

    • src host 192.168.1.104 && dst port 80:捕获源地址为 192.168.1.104 且目标端口为 80 的数据包。
    • host 192.168.1.104 || host 192.168.1.102:捕获主机地址为 192.168.1.104 或 192.168.1.102 的数据包。
    • !broadcast:不捕获广播数据包。

2. 显示过滤器语法和实例

  • 比较操作符 :包括 ==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。

  • 协议过滤:直接在过滤框中输入协议名,注意协议名称需小写。例如:

    • tcp:仅显示 TCP 协议的数据包。
    • http:仅显示 HTTP 协议的数据包。
    • icmp:仅显示 ICMP 协议的数据包。
  • IP 过滤

    • ip.src == 192.168.1.104:显示源地址为 192.168.1.104 的数据包。
    • ip.dst == 192.168.1.104:显示目标地址为 192.168.1.104 的数据包。
    • ip.addr == 192.168.1.104:显示源 IP 地址或目标 IP 地址为 192.168.1.104 的数据包。
  • 端口过滤

    • tcp.port == 80:显示源主机或目标主机端口为 80 的数据包。
    • tcp.srcport == 80:仅显示 TCP 协议的源主机端口为 80 的数据包。
    • tcp.dstport == 80:仅显示 TCP 协议的目标主机端口为 80 的数据包。
  • Http 模式过滤

    • http.request.method == "GET":仅显示 HTTP GET 方法的数据包。
  • 逻辑运算符andornot。例如,ip.addr == 192.168.1.104 and icmp 表示获取 IP 地址为 192.168.1.104 的 ICMP 数据包。

  • 数据包内容过滤 :假设需要根据 ICMP 层的内容进行过滤,可单击选中界面中的码流,在下方进行选中数据。右键单击选中后,选择 Select ,在过滤器中显示条件表达式。例如,过滤出数据包中包含 "abcd" 内容的数据流,条件表达式为 contains "abcd"

Wireshark 抓包分析 TCP 三次握手

1. TCP 三次握手连接建立过程

  • Step 1 :客户端发送一个 SYN=1ACK=0 标志的数据包给服务端,请求建立连接。
  • Step 2 :服务端收到请求并允许连接后,发送一个 SYN=1ACK=1 标志的数据包给客户端,告知可以通信,并要求客户端发送确认数据包。
  • Step 3 :客户端发送一个 SYN=0ACK=1 的数据包给服务端,确认连接已建立,TCP 连接成功,开始通信。

2. Wireshark 抓包获取访问指定服务端数据包

  • Step 1 :启动 Wireshark 抓包,打开浏览器输入 www.huawei.com
  • Step 2 :使用 ping www.huawei.com 获取 IP 地址。
  • Step 3 :输入过滤条件 ip.addr == 211.162.2.183 获取待分析数据包列表。

从图中可以看到,Wireshark 截获了三次握手的三个数据包。第四个包才是 HTTP 数据包,这表明 HTTP 确实是通过 TCP 建立连接的。

第一次握手数据包

客户端发送一个 TCP 数据包,标志位为 SYN,序列号为 0,表示客户端请求建立连接。

关键属性

  • SYN:标志位,表示请求建立连接。
  • Seq = 0:初始建立连接值为 0,数据包的相对序列号从 0 开始,表示当前尚未发送数据。
  • Ack = 0:初始建立连接值为 0,表示尚未接收到数据。

第二次握手的数据包

服务器发回确认包,标志位为 SYN, ACK,将确认序号设置为客户端的初始序列号加 1,即 0+1=1。

关键属性

  • [SYN + ACK] :标志位,表示同意建立连接并回送 SYN+ACK
  • Seq = 0:初始建立值为 0,表示尚未发送数据。
  • Ack = 1 :表示当前端成功接收的数据位数。虽然客户端尚未发送任何有效数据,但确认号仍被加 1,因为包含 SYNFIN 标志位的包不携带有效数据。

第三次握手的数据包

客户端再次发送确认包(ACK),SYN 标志位为 0,ACK 标志位为 1。客户端将服务器发来的 ACK 序号字段加 1,并将其放在确认字段中发送给对方。

关键属性

  • ACK:标志位,表示已收到记录。
  • Seq = 1:表示当前已发送 1 个数据。
  • Ack = 1 :表示当前端成功接收的数据位数。虽然服务端尚未发送任何有效数据,但确认号仍被加 1,因为包含 SYNFIN 标志位的包不携带有效数据。

通过 TCP 三次握手,连接建立成功,开始进行数据交互。

数据交互过程的数据包说明

数据包关键属性

  • Seq: 1:表示当前已发送 1 字节数据。
  • Ack: 1:表示当前共收到 1 字节数据。
  • Seq: 1:表示当前已发送 1 字节数据。
  • Ack: 951:表示服务端共收到 951 字节数据。

在 TCP 层,FLAGS 字段包含以下标识:SYNFINACKPSHRSTURG。其中,日常分析中常用的字段为前五个,其含义如下:

  • SYN:表示建立连接。
  • FIN:表示关闭连接。
  • ACK:表示响应。
  • PSH:表示有数据传输。
  • RST:表示连接重置。

Wireshark 分析常用操作

调整数据包列表中时间戳的显示格式。调整方法为 ViewTime Display FormatDate and Time of Day。调整后的格式如下:


这么详细的 Wireshark 的抓包和分析,工作中是没人告诉你的!

小杰的网工专栏 原创于 2024-09-13 13:48:52 发布

引言

Wireshark 是一款功能强大的网络封包分析软件,广泛应用于网络封包和流量分析领域。它通过捕获网络封包并展示详细的封包信息,为网络工程师和分析师提供了深入分析网络通信的工具。本文将详细介绍 Wireshark 的使用方法,包括主界面介绍、简单抓包示例以及过滤器的使用。

Wireshark 主界面介绍

Wireshark 的主界面是用户与软件交互的主要场所。打开 Wireshark 后,用户将看到如下界面:

在主界面中,用户可以通过选择菜单栏中的 CaptureOption 来配置抓包选项。例如,用户可以根据自身需求选择对应的网卡(如 WLAN),并点击 Start 启动抓包过程。

启动抓包后,Wireshark 将进入抓包状态,实时显示网络中的数据包信息。

Wireshark 简单抓包示例

为了帮助用户快速上手,以下是一个简单的抓包示例。通过该示例,用户可以学习如何捕获数据包并进行基本的查看与分析。

  1. 执行抓包操作 :用户可以执行如 ping www.baidu.com 的命令,以生成可捕获的数据包。
  2. 数据包过滤 :为了便于分析,用户可以在过滤栏中设置过滤条件。例如,使用 ip.addr == 119.75.217.26 and icmp 来筛选出特定 IP 地址和协议的数据包。

通过上述步骤,用户可以快速捕获并筛选出所需的数据包,为进一步的分析打下基础。

Wireshark 抓包界面详解

Wireshark 的抓包界面由多个部分组成,每个部分都有其特定的功能和用途。

数据包列表区

数据包列表区以不同颜色区分不同协议的数据包,便于用户快速识别。用户可以通过菜单栏的 ViewColoring Rules 来查看和修改颜色规则。

主要界面组件

Wireshark 的主要界面组件包括:

  1. 显示过滤器(Display Filter) :用于设置过滤条件,以便从数据包列表中筛选出特定的数据包。菜单路径为 AnalyzeDisplay Filters

  2. 数据包列表(Packet List Pane):显示捕获到的数据包,每个数据包包含编号、时间戳、源地址、目标地址、协议、长度以及数据包信息。

  3. 数据包详细信息(Packet Details Pane):显示选定数据包的所有详细信息,是分析协议字段的关键部分。信息行包括:

    • Frame:物理层的数据帧概况。
    • Ethernet II:数据链路层以太网帧头部信息。
    • Internet Protocol Version 4:互联网层 IP 包头部信息。
    • Transmission Control Protocol:传输层 TCP 数据段头部信息。
    • Hypertext Transfer Protocol:应用层 HTTP 协议信息。
  4. 数据包字节区(Dissector Pane):显示数据包的字节内容,便于用户查看原始数据。

Wireshark 过滤器设置

Wireshark 提供了两种类型的过滤器,帮助用户在大量数据中快速找到所需信息。

抓包过滤器

抓包过滤器用于在捕获数据包之前设置过滤条件。用户可以通过菜单栏的 CaptureCapture Filters 来配置抓包过滤器。

例如,使用 ip host 60.207.246.216 and icmp 可以仅捕获特定主机的 ICMP 数据包。

显示过滤器

显示过滤器用于在捕获数据包后设置过滤条件,以便从大量数据中筛选出特定的数据包。用户可以在捕获数据包时设置较宽泛的条件,然后使用显示过滤器进行进一步筛选。

例如,使用 ip.addr == 211.162.2.183 and icmp 可以筛选出特定 IP 地址和协议的数据包。

过滤器语法与实例

Wireshark 的过滤器语法包括以下几种类型:

  1. 抓包过滤器语法

    • 协议过滤 :直接输入协议名,如 tcphttpicmp
    • IP 过滤 :如 host 192.168.1.104src host 192.168.1.104
    • 端口过滤 :如 port 80src port 80
    • 逻辑运算符 :如 &&(与)、||(或)、!(非)。
  2. 显示过滤器语法

    • 比较操作符 :如 ==(等于)、!=(不等于)、>(大于)。
    • 协议过滤 :输入协议名,注意使用小写,如 tcphttpicmp
    • IP 过滤 :如 ip.src == 192.168.1.104ip.dst == 192.168.1.104
    • 端口过滤 :如 tcp.port == 80tcp.srcport == 80
    • 逻辑运算符 :如 andornot

通过合理使用过滤器,用户可以高效地筛选出所需的数据包,提高分析效率。

Wireshark 抓包分析 TCP 三次握手

TCP 三次握手是建立 TCP 连接的标准过程。以下是 Wireshark 捕获的 TCP 三次握手过程的分析。

TCP 三次握手过程

  1. 第一次握手 :客户端发送一个带有 SYN=1ACK=0 标志的数据包给服务端,请求建立连接。
  2. 第二次握手 :服务端收到请求后,发送一个带有 SYN=1ACK=1 标志的数据包给客户端,表示同意建立连接。
  3. 第三次握手 :客户端发送一个带有 SYN=0ACK=1 标志的数据包给服务端,确认连接已建立。

抓包分析

通过 Wireshark 捕获的数据包,可以清晰地看到 TCP 三次握手的三个数据包。以下是具体的分析步骤:

  1. 启动 Wireshark:打开 Wireshark 并开始抓包。
  2. 访问目标网站 :通过浏览器访问目标网站,如 www.huawei.com
  3. 获取 IP 地址 :使用 ping www.huawei.com 获取目标网站的 IP 地址。
  4. 设置过滤条件 :输入过滤条件 ip.addr == 211.162.2.183,以筛选出与目标 IP 地址相关的数据包。

通过上述步骤,用户可以清晰地看到 TCP 三次握手的三个数据包,从而确认 HTTP 连接是通过 TCP 建立的。

数据包关键属性

每个数据包的关键属性如下:

  • 第一次握手数据包

    • SYN:标志位,表示请求建立连接。
    • Seq = 0:初始建立连接值为 0,数据包的相对序列号从 0 开始。
    • Ack = 0:初始建立连接值为 0,表示尚未接收到数据。
  • 第二次握手数据包

    • [SYN + ACK]:标志位,表示同意建立连接。
    • Seq = 0:初始建立值为 0。
    • Ack = 1:表示已成功接收一个数据位。
  • 第三次握手数据包

    • ACK:标志位,表示已收到记录。
    • Seq = 1:表示已发送 1 个数据。
    • Ack = 1:表示已成功接收一个数据位。

通过 TCP 三次握手,连接成功建立,随后开始数据交互。

Wireshark 分析常用操作

Wireshark 提供了许多实用的分析工具和功能,帮助用户更高效地进行网络分析。

调整时间戳显示格式

用户可以通过 ViewTime Display FormatDate and Time of Day 调整数据包列表中时间戳的显示格式。

其他常用操作

Wireshark 还可以与主流厂家的模拟器配合使用,以实现更准确的项目配置。

结语

Wireshark 是一款功能强大的网络封包分析工具,通过本文的介绍,用户可以快速掌握其基本使用方法,包括主界面操作、简单抓包示例以及过滤器的使用。希望本文能够帮助用户在实际工作中更好地应用 Wireshark,提高网络分析的效率和准确性。


Wireshark 抓取 HTTPS 数据包

Sun@Python 于 2023-01-11 修改

1. Wireshark 抓包为什么不显示 HTTPS 数据?

Wireshark 是基于网络层的抓包工具,通过捕获通信双方的 TCP/IP 包实现内容提取。对于应用层的数据,如果应用层协议是公开的,则可以直接显示数据。然而,处理 HTTPS 协议时,由于无法获取客户端和服务端的私钥,因此对应的数据不可见。如果 Wireshark 能够获取私钥,则可以显示 HTTPS 的通信数据。

2. 利用 Chrome 浏览器实现对 HTTPS 的抓包

  1. 配置环境变量 :设置环境变量 SSLKEYLOGFILEC:\Users\Sun\sslkey.log

    注意 :此环境变量需根据个人电脑配置进行设置。使用时添加,不使用时删除,以免在其他程序运行时引发异常,例如 OPENSSL_Uplink(XX......XX,08): no OPENSSL_Applink

  2. 重启谷歌浏览器 ,检查指定位置是否生成了 sslkey.log 文件。

  3. 配置 Wireshark :进入 EditPreferencesProtocolsTLS ,在 "(Pre)-Master-Secret log filename" 中填入 sslkey.log 的完整路径。

  4. 抓取 HTTPS 数据包:使用谷歌浏览器访问 HTTPS 网站,或在浏览器控制台发送请求。

    备注

    1. 打开控制台(或右键页面选择 检查 ,切换到 Console 控制台)。

    2. 在控制台输入以下代码:

      cpp 复制代码
      fetch(new Request('url 地址', {method: 'POST'})).then((resp) => {console.log(resp)})

      其中,url 地址 是需要访问的接口路径。如果需要传递参数,可将请求参数添加到 URL 后面(与 GET 请求方式相同)。

    3. 完成后,按 回车。在地址请求栏中可以看到接口的请求信息。

    如果解密失败,将显示以下内容:

    注意 :不使用时,务必删除配置的路径,因为 C:\Users\Sun\sslkey.log 文件会不断增大,影响其他程序的运行。


Wireshark 抓取 HTTPS 明文并提取其资源内容的配置和操作流程

xingrun 于 2025-06-05 发布

1. Wireshark 抓取 HTTPS 明文报文的配置与操作流程

原理:通过获取 HTTPS 会话的 TLS 预主密钥,Wireshark 可以解密流量。需要配置浏览器或系统导出密钥日志文件。

步骤:

  1. 设置环境变量(导出密钥日志),二选一

    • Windows (CMD/PowerShell)

      bat 复制代码
      set SSLKEYLOGFILE=D:\Program\WiresharkPortable64\sslkey.log
    • Windows (图形界面操作)

  2. 配置浏览器使用该环境变量

    • Firefox:启动时自动读取环境变量。

    • Chrome/Edge:需从配置了环境变量的终端启动:

      bash 复制代码
      # Linux/macOS
      google-chrome
      
      # Windows(在已设置环境变量的 CMD 中启动)
      start chrome.exe

      如果通过图形界面设置环境变量,重启 Chrome 浏览器即可。

      检查文件 D:\Program\WiresharkPortable64\sslkey.log 中是否已存储 TLS 密钥信息。

  3. 配置 Wireshark 解析密钥

    • 打开 Wireshark → EditPreferencesProtocolsTLS

    • "(Pre)-Master-Secret log filename" 中填入 sslkey.log 的完整路径。

  4. 抓包与验证

    • 开始抓包,访问 HTTPS 网站(如 https://www.baidu.com)。
    • 若配置成功,HTTPS 流量(如 TLSv1.2/1.3)将被自动解密,显示为 HTTP 协议。
    • 关键检查:
      • 数据包详情中的协议是否为 HTTP 而非 TLS
      • 右键点击数据包,选择 FollowHTTP Stream,可查看明文请求和响应。

2. 提取 Wireshark 数据包中的 PNG 资源的方法

方法一:使用 Wireshark 内置功能(推荐)

适用场景:通过 HTTP 等明文协议完整传输的 PNG、JPEG 等文件。

操作流程

  1. 过滤 HTTP 流量:http.content_type contains "image/png"
  2. 定位携带文件的响应包(HTTP 200 OK)。
  3. 右键点击该数据包,选择 FollowHTTP Stream
  4. 在弹出窗口中:
    • 查看右侧 "Show and save data as" ,选择 "Raw"
    • 点击 "Save as..." ,保存为 .png 文件。

方法二:手动导出 TCP 流重组文件

适用场景:非 HTTP 协议传输的图片(如 WebSocket、自定义 TCP)。

操作流程

  1. 定位包含图片数据的 TCP 包(可通过 tcp.payload contains "\x89PNG" 过滤 PNG 头)。
  2. 右键点击该包,选择 FollowTCP Stream
  3. 设置显示格式为 "Raw" ,点击 "Save as..." ,保存为 .bin 文件。
  4. 重命名文件后缀为 .png

方法三:VSCode 十六进制编辑(原始数据包提取)

适用场景:需精确提取碎片化传输的图片数据。

操作流程

  1. 在 Wireshark 中找到包含图片数据的应用层数据包(如 HTTP 包)。
  2. 展开数据包详情,选中应用层载荷(如 Media Type: image/png)。
  3. 右键点击,选择 Export Packet Bytes ,保存为 raw.bin
  4. 使用 VSCode 安装十六进制编辑器插件(如 Hex Editor)。
  5. 打开 raw.bin 文件,检查文件头和尾:
    • PNG 头89 50 4E 47 0D 0A 1A 0A
    • PNG 尾00 00 00 00 49 45 4E 44 AE 42 60 82
  6. 删除多余字节(如 HTTP 头部),仅保留从 89PNGIEND 的数据。
  7. 保存为 .png 文件。

注意事项

  • HTTPS 解密前提

    • 必须捕获完整的 TLS 握手过程(如 ClientHelloServerHello 等)。
    • 浏览器需全程使用同一 sslkey.log 文件(重启浏览器需重新抓包)。
  • 资源提取技巧

    • 使用 Wireshark 的 "Export Objects → HTTP" 功能,可批量提取所有传输的文件(包括图片)。
    • 碎片化传输的图片需手动拼接 TCP 流。
    • 加密流量(如未解密的 HTTPS)无法直接提取资源。

提示:对于非 PNG 文件(如 JPEG),可替换文件头尾标识:

  • JPEG 头FF D8 FF
  • JPEG 尾FF D9

方法二和方法三同样适用。


Wireshark 抓取 QQ 数据包实例分析

零壹 于 2020-05-16 发布

实验步骤

  1. 打开 Wireshark:由于笔记本连接的是 WIFI,因此点击 WLAN。

  2. 抓取数据包中

  3. 停止抓包 :点击左上角的正方形角标,停止抓包。在应用显示过滤器中输入 oicq,然后按下 Enter,即可显示 QQ 数据包。

  4. 过滤 QQ 数据包 :按下 Enter,过滤所有 QQ 数据包。

  5. 查看 OICQ 数据包

  6. 数据段中的 QQ 数据为十六进制


  7. 网络层次结构:从下到上依次为物理层、数据链路层、网络层、传输层、应用层(图中顺序为从上到下)。

  8. 时间信息


  9. 语音通话数据包 :使用电脑登录大号,与手机的小号进行语音通话,抓取的 UDP 包可以显示手机的 IP 地址。


结语

本次抓包实验仅为练手,如有不详尽之处,敬请谅解。此外,由于电脑与手机使用同一局域网,因此成功获取了手机的 IP 地址。

使用 Wireshark 抓取与他人语音聊天或发送文件的数据包时,无法获取对方的 IP 地址,主要是由于以下几个原因:

  • NAT 转换:内部 IP 地址被转换为公网 IP 地址。
  • 加密通信:数据包内容被加密,无法直接解析。
  • 应用层协议封装:数据被封装在特定协议中,隐藏了 IP 地址信息。
  • 中间设备影响:数据包经过多个中间设备,可能被进一步处理或转换。

这些因素作用,使得在抓包时难以直接获取对方的原始 IP 地址。


via: