Si su conexión es NAT'ed, ¿es posible ver su dirección IP externa sin hacer una solicitud web saliente?
Cualquier sistema operativo (Windows, Linux, etc.) está bien.
networking
nat
ip-address
Axel Persinger
fuente
fuente
Respuestas:
Si su computadora está detrás de NAT, es posible que vea la dirección IP externa de su enrutador, pero necesita acceso administrativo al enrutador.
El enrutador conoce su dirección IP externa, por lo que al acceder a su página de configuración puede encontrar esa dirección IP. De esta manera no se requiere ninguna herramienta especializada, excepto un navegador web.
Otros protocolos que requieren una herramienta para obtener la información:
Según lo probado por el usuario @dirkt, todos los métodos solo funcionan con IPv4 (excepto posiblemente para PCP).
fuente
WANIPConn1/GetExternalIPAddress
, y acaba de devolver con éxito la dirección correcta.Hay algunas formas en que funcionan con algunos NAT, pero nada garantiza que funcione en todas partes.
Creo que uPnP, NAT-PMP y PCP (Universal Plug And Play, Protocolo de asignación de puertos NAT y Protocolo de control de puertos) tienen formas de preguntarle a una puerta de enlace NAT compatible cuál es la dirección pública, pero no todos los NAT admiten estos protocolos. El soporte es más común en enrutadores de puerta de enlace doméstica que en soluciones NAT corporativas o de nivel de operador.
Cuando te encuentras detrás de un NAT, la única forma segura de ver en qué dirección IP pública está traduciendo tu tráfico es enviar algo de tráfico saliente a algún host público que informará, de una manera que el NAT no traducirá, qué dirección de su tráfico parecía venir. El uso de un servicio basado en la web es una forma, pero también podría hacerlo, por ejemplo, ingresando SSH en una instancia de servidor en la nube y viendo de dónde
sshd
proviene su sesión SSH.fuente
Puede usar una solicitud de DNS, que creo que no entraría en la categoría de "solicitud web":
fuente
dig +short @8.8.8.8 o-o.myaddr.l.google.com txt | grep edns
. Encontré el comando aquí: groups.google.com/d/msg/public-dns-discuss/uyzmMcHQBE0/…nsslookup
comando falla por mí. ObtengoServer: resolver1.opendns.com
Address: 2620:119:35::35#53
** server can't find myip.opendns.com: NXDOMAIN
dig
ya que no está en Windows. Sinmyaddr
embargo, un buen punto con respecto a Google, ¡no estaba al tanto de eso! Supongo que elnslookup
equivalente de Windows seríanslookup -type=txt o-o.myaddr.l.google.com ns3.google.com
nslookup
qué versión de IP usar para el transporte, pero la forma en que OpenDNS lo hace significa que debe hacerlo. Sin eso, tendría que predecir qué versión de IPnslookup
utilizará para el transporte y solicitar A o AAAA en consecuencia. Si está atascadonslookup
, puede usar otro proveedor como Google. Sin embargo, todavía obtienes solo una versión de protocolo en la respuesta y no puedes elegir cuál.nslookup -type=txt o-o.myaddr.l.google.com ns3.google.com
y eso sí funciona. Pero si tengo tanto IPv4 como IPv6, eso no me permitirá elegir cuál de ellos puedo ver. Lo más probable es que me muestre la dirección IPv6, y lo más probable es que la esté usando porque quiero saber la dirección IPv4 de un NAT. Para evitarlo, sería necesario utilizar un servicio que tenga un nombre solo IPv4 y un nombre solo IPv6, que también abordaría el problema de NAT64.Me gustaría agregar un punto a las respuestas ya existentes.
También depende de la complejidad de la red. Es posible que su computadora esté ubicada dentro de una red que tiene múltiples direcciones IP externas y el enrutador en algún lugar de la línea envía el tráfico a Internet según algunos criterios: por ejemplo, la dirección IP de destino o la hora del día (puede ser un canal de enlace ascendente es más barato por la noche o por otras razones).
Por lo tanto, para completar, una noción de "dirección IP externa" puede requerir definir un punto de destino al que su dirección sea externa.
En el ejemplo a continuación
Router #2
podría realizar NAT y enviar tráfico a cualquiera de los enlaces ascendentes y el host receptor podría ver diferentes direcciones IP externas para elHost
.O podría ser que cierto destino (por ejemplo
host1.example.com
) siempre enruta a través deUplink A
, y el hosthost2.example.com
siempre enruta a través deUplink B
. Por lo tanto, sus direcciones IP externas, tal como las ven esos hosts, serán diferentes, siempreUplink A
y cuandoUplink B
sean ISP diferentes.Por lo tanto, el envío de tráfico permitirá obtener resultados más confiables.
fuente
Puede usar DNS en lugar de HTTP. Por ejemplo, puedes usar:
Esto mostrará la dirección de unidifusión del servidor DNS que está utilizando, y si es compatible con EDNS, también mostrará su dirección IP, aunque posiblemente truncada.
Para obtener su dirección IP completa, puede omitir su servidor DNS local y enviar la solicitud anterior directamente a ns {1,2,3,4} .google.com
Si desea ver su dirección IP en una versión de protocolo específica, puede usar
-6
y-4
:También puede usar OpenDNS si así lo prefiere. OpenDNS no utiliza registros TXT para esto, sino registros A y AAAA, por lo que debe especificar qué versión de protocolo está buscando:
Tenga en cuenta que si su tráfico pasa por la traducción del protocolo, puede obtener resultados diferentes o ninguno. Probar desde una máquina detrás de NAT64 Pude ver mi dirección IPv6 con los comandos anteriores pero no la dirección IPv4 de NAT64.
Esta respuesta se basa en estas fuentes 1 2 3 y un poco de investigación propia.
fuente
Web generalmente se refiere a HTTP, si ese es el significado de su pregunta, entonces, por ejemplo, podría usar STUN ( Artículo de Wikipedia ) que significa "Utilidades de recorrido de sesión para NAT".
Ahora, como se ha resaltado en un comentario, es posible que tenga varias direcciones IP externas. Además, como las conexiones inalámbricas se están volviendo más comunes (cosa 4G), no es imposible que la dirección IP informada por su enrutador no sea pública. Incluso conocí ese escenario en las conexiones de fibra óptica en algunos países, donde el ISP le daría al enrutador local una IP privada, que luego se traduciría 1: 1 a una IP pública al salir de su red.
Entonces, si su pregunta es "¿puedo encontrar mi IP pública sin enviar paquetes fuera de mi red", PUEDE EN su contexto, pero no hay una solución 100% de prueba.
fuente