Один из зарезервированных диапазонов IP-адресов, как определяют here является:IP-адреса: Вероятность незарезервированного адреса, выходящего за пределы 100. *?
Блок 100.64.0.0/10
Диапазон 100.64.0.0 - 100.127.255.255
Я пытаясь создать регулярное выражение, которое будет захватывать любой адрес в этом диапазоне, но я не вижу способа сделать это, не указывая все возможные значения для вторых 8 бит.
Если я просто оставил свое регулярное выражение как «любой IP-адрес, начинающийся с 100.», этого было бы достаточно? Или, если это так, есть ли не -резервный адрес, который начинается с 100, но который не не входит в число 100.64.0.0 - 100.127.255.255?
Если вы используете Perl, вы можете использовать что-то вроде '(\ d +) (?? {$^N> 64 && $^N <128? '': '(?!)'})', Чтобы проверить второй триплет. Но регулярные выражения, безусловно, являются неправильным инструментом для этого, и я предлагаю вам вместо этого использовать что-то другое, чтобы сохранить ваше собственное здравомыслие. И поскольку пространство IPv4 близко к исчерпанию, вероятность того, что вы получите адрес, начинающийся с 100, но вне диапазона, значительна. –
Регулярное выражение действительно не тот инструмент. Легче преобразовать адрес в число или строку (например, inet_pton), чтобы вы могли выполнить обычную проверку диапазона. –