ipv6地址的前缀长度计算

时间:2013-05-03 07:16:09

标签: c++ boost

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

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

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

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

1 个答案:

答案 0 :(得分:0)

有用的提升部分为regex,用于分析您的内容,lexical_cast将字符串转换为数字。