Рассмотрим список IP-адресов, предоставленных HTTP-заголовком X-Forwarded-For :
10.0.0.142, 192.168.0.10, 212.43.234.12, 54.23.66.43
Я хотел бы знать, какой из них является первым общедоступным адресом в этом списке. Я могу просматривать их достаточно легко, но как я могу определить, какие из них общедоступны? Мне кажется (мой неподготовленный глаз), что 10.0.0.142
это рабочая станция, 192.168.0.10
внутренний прокси и 212.43.234.12
общедоступный адрес, который пересылается через прокси на 54.23.66.43
. Есть ли способ рассчитать это в коде?
Моя первая интуиция заключается в том, что адреса, которые начинаются с 10.
или 192.
не являются общедоступными, но http://simplesniff.com показывает мой домашний IP-адрес 192.117.111.61
. Существует ли формула для определения того, какие адреса являются публичными, а какие зарезервированными? Обратите внимание, что даже попытка пропинговать рассматриваемый сервер может не помочь, так как некоторые серверы не отвечают на пинг, а также в моей локальной сети может быть адрес, который также соответствует внутреннему адресу.
источник
Ответы:
RFC 1918 определяет диапазоны частных IP-адресов. Посмотрите здесь.
Из этого документа:
Частное адресное пространство
Управление по присвоению номеров в Интернете (IANA) зарезервировало следующие три блока пространства IP-адресов для частных сетей:
10.0.0.0 - 10.255.255.255 (префикс 10/8)
172.16.0.0 - 172.31.255.255 (префикс 172.16 / 12)
192.168.0.0 - 192.168.255.255 (префикс 192.168 / 16)
источник
127.0.0.0/16
(а может и больше) нет в этом списке.Помимо исходного пространства RFC 1918 (которое теперь обновлено до RFC6890 ), есть несколько других блоков, таких как 192.0.2.0, которые не объявлены публично. Кроме того, возможно, что кто-то имеет действительное пространство IPv4, которое просто не объявлено в общедоступном Интернете.
Самое простое, что можно сделать
telnet route-views.oregon-ix.net
, это войти в системуrviews
и посмотреть самим ... например, это некое «192» пространство, анонсированное AS7018 (AT & T) ...С другой стороны, вы увидите, что 192.0.2.0/24 (ref RFC6890 ) нигде не найти ...
Также не 169.254.0.0/16 (или дольше) ...
источник
Team Cymru предоставляет справочную информацию по IPv4 и IPv6, которую можно использовать для фильтрации неназначенных / зарезервированных / частных IP-адресов - она предлагается как в виде простого списка для известных префиксов, так и в виде гораздо большего списка, включающего пространство, которое пока не назначен RIR.
Они также запускают BGP-сервер Bogon, к которому вы можете запросить бесплатный пиринг - неоценимо, если вы не можете запустить зону без доступа по умолчанию в Интернете.
источник
Существует ряд диапазонов, которые зарезервированы для различных вариантов использования. IANA имеет авторитетный и полный список . Он включает в себя RFC1918, RFC6761, а также более поздние бронирования, такие как блок CGN 100,64 / 10. Если вы найдете там какие-либо адреса, они, вероятно, каким-то образом используются в частной сети и должны быть отброшены в пользу других в поисках первого публичного адреса.
источник