Как проверить действительный общедоступный IP-адрес?

Рассмотрим список 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. Есть ли формула для определения того, какие адреса являются общедоступными и которые зарезервированы частными? Обратите внимание, что даже попытка выполнить ping-сервер может не помочь, так как некоторые серверы не будут отвечать на ping, а также может быть адрес в моей локальной сети, который также соответствует внутреннему адресу.

39 голосов | спросил dotancohen 10 J000000Wednesday13 2013, 14:40:49

4 ответа


24

RFC 1918 определяет диапазоны частных IP-адресов. Посмотрите здесь .

Из этого документа:

  1. Частное адресное пространство

    Администрация присвоенных номеров Интернета (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)

ответил GerryEgan 10 J000000Wednesday13 2013, 14:44:53
37

Помимо исходного пространства RFC 1918 (которое теперь обновляется до RFC6890 ), существует несколько других блоков, таких как 192.0 .2.0, которые не публикуются публично. Кроме того, возможно, что у кого-то есть действительное пространство IPv4, которое просто не объявлено в общедоступном Интернете.

Простейшей задачей является telnet route-views.oregon-ix.net, войти как rviews и искать себя ... например, это некоторые «192» пространство, анонсированное AS7018 (AT & T) ...

route-views>sh ip route 192.199.1.0
Routing entry for 192.199.1.0/24
  Known via "bgp 6447", distance 20, metric 0
  Tag 7018, type external
  Last update from 12.0.1.63 3w1d ago
  Routing Descriptor Blocks:
  * 12.0.1.63, from 12.0.1.63, 3w1d ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 7018

route-views>

С другой стороны, вы увидите, что 192.0.2.0/24 (ref RFC6890 ) нигде не должно быть найдено ...

route-views>sh ip route 192.0.2.0 255.255.255.0
% Subnet not in table
route-views>

Не равно 169.254.0.0/16 (или больше) ...

route-views>sh ip route 169.254.0.0 255.255.0.0 longer
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 128.223.51.1 to network 0.0.0.0

route-views>
ответил Mike Pennington 10 J000000Wednesday13 2013, 14:57:31
13

Team Cymru предоставляет ссылку на богон для IPv4 и IPv6, которые вы может использоваться для отфильтровывания неназначенных /зарезервированных /частных IP-адресов - он предлагается как простой список для известных префиксов, так и в гораздо большем списке, который включает в себя пространство, которое пока еще не назначено RIR.

Они также запускают сервер bogon BGP, который вы можете запросить бесплатный пиринг, - неоценимый, если вы не можете запустить зону, свободную от по умолчанию, в Интернете.

ответил Olipro 10 J000000Wednesday13 2013, 16:58:40
2

Существует несколько диапазонов, которые зарезервированы для различных вариантов использования. IANA имеет авторитетный и полный список . Он включает RFC1918, RFC6761, а также более поздние оговорки, такие как блок CGN 100.64 /10. Если вы найдете там какие-либо адреса, они, скорее всего, будут использоваться в частной сети и должны быть отброшены в пользу других в поисках первого общедоступного адреса.

ответил kll 27 +03002015-10-27T16:43:30+03:00312015bEurope/MoscowTue, 27 Oct 2015 16:43:30 +0300 2015, 16:43:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132