2015-06-23 2 views
1

Один из зарезервированных диапазонов 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?

+2

Если вы используете Perl, вы можете использовать что-то вроде '(\ d +) (?? {$^N> 64 && $^N <128? '': '(?!)'})', Чтобы проверить второй триплет. Но регулярные выражения, безусловно, являются неправильным инструментом для этого, и я предлагаю вам вместо этого использовать что-то другое, чтобы сохранить ваше собственное здравомыслие. И поскольку пространство IPv4 близко к исчерпанию, вероятность того, что вы получите адрес, начинающийся с 100, но вне диапазона, значительна. –

+1

Регулярное выражение действительно не тот инструмент. Легче преобразовать адрес в число или строку (например, inet_pton), чтобы вы могли выполнить обычную проверку диапазона. –

ответ

1

Чтобы ответить на ваш вопрос «вероятие незарезервированного адреса выпадающего 100. *?»: 100%

Смотрите, например http://whois.arin.net/rest/net/NET-100-0-0-0-1 и http://whois.arin.net/rest/net/NET-100-48-0-0-1. Это всего лишь два примера некоторых крупных интернет-провайдеров, использующих пространство от 100.0.0.0/8.

Смежные вопросы