Considere una lista de direcciones IP proporcionadas por el encabezado HTTP X-Fordered-For :
10.0.0.142, 192.168.0.10, 212.43.234.12, 54.23.66.43
Me gustaría saber cuál es la primera dirección de acceso público en esa lista. Puedo revisarlos con bastante facilidad, pero ¿cómo puedo saber cuáles son de acceso público? Me parece (mi ojo inexperto) que 10.0.0.142
es una estación de trabajo, 192.168.0.10
un proxy interno y 212.43.234.12
es una dirección de acceso público que se reenvía a través del proxy en 54.23.66.43
. ¿Hay alguna forma de calcular esto en código?
Mi primera intuición es que las direcciones que comienzan con 10.
o 192.
no son de acceso público, pero http://simplesniff.com revela la dirección IP de mi casa 192.117.111.61
. ¿Existe una fórmula para determinar qué direcciones son públicas y cuáles están reservadas? Tenga en cuenta que incluso intentar hacer ping al servidor en cuestión podría no ayudar, ya que algunos servidores no responderán al ping, y también podría haber una dirección en mi red local que también coincidía con la dirección interna.
fuente
Respuestas:
RFC 1918 define rangos de direcciones IP privadas. Echa un vistazo aquí.
De ese documento:
Espacio de direcciones privadas
La Autoridad de Números Asignados de Internet (IANA) ha reservado los siguientes tres bloques del espacio de direcciones IP para Internet privadas:
10.0.0.0 - 10.255.255.255 (prefijo 10/8)
172.16.0.0 - 172.31.255.255 (prefijo 172.16 / 12)
192.168.0.0 - 192.168.255.255 (prefijo 192.168 / 16)
fuente
127.0.0.0/16
(y tal vez más) no estén en esa lista.Además del espacio original RFC 1918 (que ahora se actualiza a RFC6890 ), hay varios otros bloques como 192.0.2.0 que no se anuncian públicamente. Además, es posible que alguien tenga un espacio IPv4 válido que simplemente no se anuncie en Internet público.
Lo más sencillo es
telnet route-views.oregon-ix.net
iniciar sesiónrviews
y buscar por sí mismo ... por ejemplo, este es un espacio "192" anunciado por AS7018 (AT&T) ...Por otro lado, verá que 192.0.2.0/24 (ref RFC6890 ) no se encuentra en ninguna parte ...
Tampoco 169.254.0.0/16 (o más) ...
fuente
Team Cymru proporciona una referencia de bogon para IPv4 e IPv6 que puede usar para filtrar direcciones IP privadas / no asignadas / reservadas: se ofrece como una lista simple para prefijos conocidos y también en una lista mucho más grande que incluye espacio que es aún no asignado por los RIR.
También ejecutan un servidor de bogon BGP al que puede solicitar un emparejamiento gratuito, invaluable si no puede ejecutar una zona libre predeterminada en Internet.
fuente
Hay varios rangos reservados para varios casos de uso. IANA tiene la lista completa y autorizada . Incluye RFC1918, RFC6761, así como reservas más recientes como el bloque 100.64 / 10 CGN. Si encuentra alguna dirección allí, es probable que se utilicen de alguna manera en una red privada y deben descartarse en favor de las demás en busca de la primera dirección pública.
fuente