對於IPv4地址範圍如169.254.0.0/16或192.168.0.0/16,可以直接爲每個地址構造一個正則表達式,因爲一旦您完全匹配前6位數字,完成。用於IPv4地址範圍的正則表達式
但是關於在寬鬆的保留範圍內的任何地址匹配什麼如
100.64.0.0 –
100.127.255.255
與100\.
開頭的正則表達式是不夠的,因爲這裏將是100.64和100.127範圍之外的數字(例如100.65。 0.0,100.127.255.256)將被錯誤地匹配。如何最好地捕獲這樣的範圍而不必明確定義每個範圍內的每個有效子範圍?該語言是Python。
作爲參考,可以找到完整的保留IP地址和範圍列表here。
欺騙? http://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address –
爲什麼你不使用IP地址庫? https://docs.python.org/3/library/ipaddress.html或https://pypi.python.org/pypi/py2-ipaddress/ – TessellatingHeckler
@TessellatingHeckler,因爲ipaddress.ip_address只會告訴我一個地址是有效的。它不幫我檢測保留的IP地址。 – Pyderman