这是我的 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/