¿Qué comando basado en * nix puedo usar para encontrar mi IP externa?


Respuestas:



8
dig + short myip.opendns.com

Esto solo funciona si está utilizando OpenDNS como su servidor DNS.

Si no lo está, uno de estos debería funcionar:

dig + short myip.opendns.com @ 208.67.222.222
dig + short myip.opendns.com @ 208.67.220.220
dig + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220

1
No funciona en mi MacOS 10.5, Ubuntu 8.04 o Ubuntu 9.04.
Drew Stephens

Interesante que lo haga en mi Ubuntu 8.10.
Brad Gilbert

Probablemente se deba a que uso opendns.
Brad Gilbert

+1 por usar DNS para encontrar una IP (en lugar de http). También puede especificar el servidor dns usando su nombre, por ejemplo, @resolver1.opendns.com(para
facilitar la


2
lynx -dump http://www.pcmesh.com/ip-check.cgi | awk '/REMOTE_ADDR/{print $2}'

2

Uno debe usar los servidores de OpenDNS para usar esto ... Puede consultar un determinado servidor DNS con cavar así:

dig + short myip.opendns.com @ 208.67.222.222

2

Puede usar curl para obtener la página de algo como whatismyip y luego sacar las piezas. Usé whatismyipaddress.com en este ejemplo ... obviamente, los campos diferirán con los diferentes servicios.

curl -s http://whatismyipaddress.com/ | grep LOOKUPADDRESS | awk '{ print $4 }'

1

Acabo de ejecutar un traceroute a algún lugar en Internet y busco el salto de nuestra red local.

tal vez hay una mejor manera?




0

puede usar el comando ifconfig para enumerar todas las interfaces y sus direcciones IP asociadas.

entonces, si sabe que su interfaz de internet es ppp0, puede ejecutar

$ ifconfig ppp0
ppp0 Link encap: Protocolo punto a punto
          inet addr: XXXX.X PtP: AAAA Máscara: 255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1444 Métrica: 1
          Paquetes RX: 198986 errores: 0 descartados: 0 desbordamientos: 0 trama: 0
          Paquetes TX: 122929 errores: 0 descartados: 0 desbordamientos: 0 operador: 0
          colisiones: 0 txqueuelen: 3
          RX bytes: 134195571 (127.9 MiB) TX bytes: 17101701 (16.3 MiB)

XXXX será tu dirección IP. AAAA es la dirección IP del próximo salto.

luego puede procesar el resultado de ifconfig con grep / awk / sed / cut / perl / lo que sea para extraer solo la IP.

Otra alternativa, si tiene instaladas las herramientas de iproute, es utilizar el comando ip. p.ej

$ ip addr list ppp0
21842: ppp0: mtu 1444 qdisc htb state UNKNOWN qlen 3
    enlace / ppp
    inet XXXX par YYYY / 32 alcance global ppp0

eso es probablemente más fácil de leer y ciertamente más fácil de analizar:

$ ip addr list ppp0 | awk '/ inet / {print $ 2}'
XXXX

- Existe la posibilidad de que cualquier IP en ifconfig no coincida con la IP real de Internet (en el caso de biNAT) - En FreeBSD no hay paquete iproute2, por lo que el comando ip no es aplicable
SaveTheRbtz

Es cierto, no uso NAT, así que nunca se me ocurrió ... simplemente me pareció "incorrecto" utilizar un servicio externo para obtener información sobre la que puede consultar su propio sistema. incluso con NAT, preferiría descubrir cómo consultar el enrutador que realiza el NAT (quizás a través de una consulta SNMP) que confiar en un servicio externo que puede o no estar disponible cuando lo necesito.
cas

@ Craig, Tu enfoque está bien. Sin embargo, no es una IP externa a menos que pueda alcanzarla con ese valor desde afuera. Usted no tiene que depender de un punto externo a esta respuesta. La idea es encontrar un punto externo confiable (al menos más que su punto perimetral) para la consulta. OpenDNS es un buen punto.
nik

@nik: el único caso probable en el que la IP de su enrutador fronterizo no es la IP externa es cuando está detrás de múltiples capas de NAT ... en cuyo caso, la solución correcta es cambiar a un servicio sin daño cerebral lo antes posible . Además, el problema con la búsqueda de una URL para averiguar su IP es que solo le dice la IP del host que realmente la busca, lo que puede ser un proxy que elimina los encabezados.
cas
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.