Wireshark 捕获过滤器示例

Wireshark Capture Filter Example

这是关于 Wireshark 数据包捕获过滤器的。

  1. IP版本不是4的IP包

解决方案:

过滤器:

ip[0] & 0xF0      != 0x40
ip[0] & 1111 0000 != 64

任何人都可以说明如何推断出上述解决方案吗?

提前致谢, 亚当

根据IPv4数据包结构:

你的版本在第一个八位字节中,在高半字节中。 IPv4 数据包的版本是“4”,如您在图片中所见,但请记住它必须位于高半字节,因此过滤器中的 0x40(十进制基数为 64)。

所以你的过滤器所做的是获取 IP 的第一个字节 header 和 AND 它与 0xF0 以确保它保留了版本部分(上半字节),然后检查它是否与 0x40IPv4 数据包)不同。

您还可以做的是: ip[0] & 0xf0 == 0x60

也就是只保留IPv6个数据包。 IPv6 数据包中的版本等于 6。版本信息的位置与 IPv4 header:

相同