首页 > 解决方案 > 对于lib pcapplusplus,为什么ipv6地址没有matchSubnet()

问题描述

对于 ipv4 地址,我可以使用 matchSubnet() 检查地址是否与子网匹配。
但是对于 ipv6,我该怎么做呢?

标签: pcaplibpcappcapplusplus

解决方案


感谢DinoStray 在 PcapPlusPlus实现此功能。

只是用一个关于如何使用它的例子来结束这个问题:

// IPv6 address
pcpp::IPv6Address ipv6Address("2607:f0d0:1002:0051:ffff:0000:0000:0004");

// IPv6 subnet
pcpp::IPv6Address subnetIpv6Address("2607:f0d0:1002:0051::");

// Match subnet with 16 bits in a mask - subnet matches
ipv6Address.matchSubnet(subnetIpv6Address, 16);   // True

// Match subnet with 96 bits in a mask - subnet doesn't match
ipv6Address.matchSubnet(subnetIpv6Address, 96);   // False

您可以在PcapPlusPlus 测试中看到更多示例,

IPv6Address并在文档中阅读更多内容。


推荐阅读