我想计算 Ipv4 和 Ipv6 地址的前缀长度。子网掩码可以是字符串形式(1、32、97 等)或点分格式(255.255.0.0)。我想强加以下条件。1)对于 ipv4 ,两种格式都应该允许。但是当我们从字符串转换为无符号时,前缀长度不应超过 31 2) 对于 ipv6,只允许前缀长度。不应超过 127
虽然我可以通过传递一个子例程很容易地完成上述计算,但我被要求使用 boost 定义的类和方法。
任何人都可以为上述建议适当的提升方法。我试图做一些搜索,但无法这样做。
参数可以是前缀长度字符串格式 (16 , 97) 或点分格式的掩码,也可以是 address(string) 。boost 方法应该能够根据已经提到的限制将前缀长度确定为无符号。