如何在Wireshark中找到创建捕获的计算机的IP地址?

时间:2012-03-22 13:08:56

标签: ip-address wireshark packet-capture

基本上,我正在使用Wireshark查看之前创建的捕获。如何找到创建捕获的机器的IP地址?

4 个答案:

答案 0 :(得分:1)

没有保证的方法,因为为了捕获数据包,用户将处于'混杂'模式。这是捕获接口检测到的所有数据包的状态。因此,除非您知道它们在网络拓扑中的位置,否则无法确定将哪些数据包发往捕获数据包的人,因为您可以做出一些可能有用的假设(例如,无线客户端不会获取发往的数据包)对于有线客户端发送的Internet,如果连接到同一路由器)。

此外,如果您知道在捕获器的计算机上运行某些服务,您可以合理地根据在该地址捕获发往该服务的大量数据包的事实来结束用户IP地址。

答案 1 :(得分:0)

如果捕获主机正在发送&通过与其进行嗅探的同一接口接收流量,然后您可能会看到来自主机IP地址的TCP确认RTT非常低。这是因为RTT计时器测量查看数据包与相应确认之间的时间,主机的TCP堆栈应该几乎立即发送ACK(除非它处于严重负载下)。

如果RTT小于~50微秒,则几乎可以肯定它来自捕获主机。

在Wireshark中,我会将TCP acknowledgement round-trip-time(tcp.analysis.ack_rtt)过滤器添加为自定义列,然后对此列进行排序以查找最小值。

在我的机器上,我看到tcp.analysis.ack_rtt次数小于15usec。我相信即使像InfiniBand这样的低延迟网络也不会给主机到主机时间这么低。

答案 2 :(得分:0)

没有保证......

但是,如果数据包来自用于捕获的计算机,则会有一些指示符。这要求捕获过滤器不排除这些数据包。

  

背景:数据包在离开网络适配器之前被捕获。

如果你看到具有这些属性之一的数据包而不是你有一个有根据的猜测的基础:

  • 数据包短于64字节,因此请致电RUNT packets。小数据包由网络控制器自动扩展。所以你很少收到很小的数据包。
  • 所有IP标头校验和均为零。这些都在传输期间进行了调整。

您可以将Wireshark配置为在首选项中显示这些校验和不正确。查找禁用此类(错误)错误指示的其他首选项以扩展此列表。

答案 3 :(得分:0)

可能的方法

一个很好的方法是检查IP数据包的TTL值

机器发送的捕获数据包应该是:

  • 将已发送数据包的IP标头的源字段设置为其IP地址。
  • 将已发送数据包的IP标头的TTL字段设置为其OSs default TTL value(如果你不知道,你需要猜测操作系统。)

relevant information about TTL from this wikipedia page

  

TTL字段由数据报的发送方设置,并由到达目的地的路由上的每个路由器减少。如果TTL字段在数据报到达目的地之前达到零,则丢弃数据报

实施例

例如,下面的捕获是在 Windows 10 计算机上进行的,其地址为 192.168.1.72 。你可以说,因为所有的TTL都是128

All the TTLs from 192.168.1.72 are 128, indicating that it is a windows machine and the capture was made on it.

相反,当过滤器设置为ip.dst == 192.168.1.72时,您会获得各种不同的TTL,这会强调发件人 192.168.1.72

All the TTLs are different, indicating that the capture was not made on these machines