2013-05-03 134 views
2

我想計算Ipv4和Ipv6地址的前綴長度。子網掩碼可以是字符串形式(1,32,97等)或點狀格式(255.255.0.0)。我想強加以下條件。 1)對於ipv4,這兩種格式都應該被允許。但是當我們從字符串轉換爲無符號時,前綴長度不應超過31 2)對於ipv6,只允許前綴長度。它不應該超過127ipv6地址的前綴長度計算

雖然我可以很容易地通過傳遞子例程來完成上述計算,但我被要求使用boost定義的類和方法。

任何人都可以爲上述建議適當的助推方法。我試圖做一些搜索,但無法做到這一點。

參數可以是前綴長度字符串格式(16,97)或虛線格式的掩碼,也可以是地址(字符串)。基於已經提到的限制,boost方法應該能夠將前綴長度確定爲無符號。

回答

0

有用的提升部件是regex,分析你得到了什麼,和lexical_cast將字符串轉換爲數字。