2

我想计算 Ipv4 和 Ipv6 地址的前缀长度。子网掩码可以是字符串形式(1、32、97 等)或点分格式(255.255.0.0)。我想强加以下条件。1)对于 ipv4 ,两种格式都应该允许。但是当我们从字符串转换为无符号时,前缀长度不应超过 31 2) 对于 ipv6,只允许前缀长度。不应超过 127

虽然我可以通过传递一个子例程很容易地完成上述计算,但我被要求使用 boost 定义的类和方法。

任何人都可以为上述建议适当的提升方法。我试图做一些搜索,但无法这样做。

参数可以是前缀长度字符串格式 (16 , 97) 或点分格式的掩码,也可以是 address(string) 。boost 方法应该能够根据已经提到的限制将前缀长度确定为无符号。

4

1 回答 1

0

有用的 boost 部分是regex,分析你得到了什么,并将lexical_cast一个字符串变成一个数字。

于 2013-05-03T09:26:43.570 回答