2015-06-23 57 views
1

一個作爲定義here的保留IP地址範圍是:IP地址:非保留地址的可能性不在100以外。*?

100.64.0.0/10

範圍 100.64.0.0 - 100.127.255.255

我試圖構造一個正則表達式來捕獲這個範圍內的任何地址,但是我沒有辦法做到這一點,而沒有爲第二個8位指定每個可能的值。

如果我剛剛將我的正則表達式定義爲「任何以100開頭的IP地址」,那就足夠了嗎?或換句話說,有沒有 - 保留地址,以100開頭,但其中落入100.64.0.0 - 100.127.255.255?

+2

如果你使用Perl,你可以使用'(\ d +)(?? {$^N> 64 && $^N <128?'':'(?!)'})'來檢查第二三聯體。但是regexps絕對是這個錯誤的工具,我建議你使用別的東西來保存自己的理智。而且由於IPv4空間已經接近枯竭,你可能會得到一個從100開始但在該範圍之外的地址,這一點很重要。 –

+1

正則表達式確實是錯誤的工具。更容易將地址轉換爲數字或字符串(例如inet_pton),以便您可以進行正常範圍檢查。 –

回答