这是我的 tcpdump 过滤器(ip[8] 是 IP ttl 字段,icmp[0]=11 对应于超时 ICMP 消息):

(ip and ip[8]=2 and src host $myIPAddress) or (icmp and dst host $myIPAddress and icmp[0]=11)

这是我在捕获文件中找到的内容:
>>> p.show()
###[ Ethernet ]###
  dst       = 00:15:f2:e3:90:e9
  src       = 00:11:43:e5:48:10
  type      = 0x800
###[ IP ]###
     version   = 4L
     ihl       = 5L
     tos       = 0xc0
     len       = 56
     id        = 19126
     flags     =
     frag      = 0L
     ttl       = 254
     proto     = icmp
     chksum    = 0xa697
     src       = 127.0.0.1
     dst       = 127.0.0.1
     \options   \

为什么我捕获了 ICMP localhost 数据包?无论如何,这种数据包的目的是什么?而且,最重要的是,为什么它没有被上述过滤器拒绝?

最佳答案

什么是“$myIpAddress”?它真的是一个 IPv4 地址吗?如果它实际上是类似于 FQDN 或主机名的任何东西,那么手册页解释了会发生什么:

http://www.tcpdump.org/manpages/pcap-filter.7.html

 host host
 (stuff removed)
 If host is a name with multiple IP addresses, each address will be checked for a match.

我不确定如果是这样会发生什么,可能是 IP 映射到 MAC 地址?

我喜欢 Guy 关于使用 -d 的建议。

关于ip - 在捕获文件 : why? 中找到的本地主机 icmp 数据包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14938112/

10-16 16:15