¿Hay alguna manera de obtener mi dirección IP pública (WAN) en la línea de comando? Estoy detrás de un enrutador (red LAN), con una dirección IP dinámica asignada por mi ISP.
He visto soluciones utilizando un servicio web externo (como ifconfig.me
), pero quiero saber si puedo hacerlo sin un servicio externo.
command-line
internet
ip
dynamic-ip
usuario61954
fuente
fuente
Respuestas:
Suponiendo que el sistema dispone de 2 dispositivos de Ethernet,
eth0
yeth1
, yeth0
está conectado a la red LAN, por ejemplo IPs 192.168.1.X. y sueth1
dispositivo está conectado a su proveedor de Internet (WAN) que va a querer utilizar la siguienteifconfig
comando para obtener su IP para el lado WAN.NOTA: Las primeras 2 formas suponen que las está ejecutando contra una computadora que tiene 2 dispositivos ethernet y que una de ellas está conectada a su ISP (módem por cable y / o módem DSL). En este escenario, el dispositivo ethernet (eth1) se configurará con su dirección IP en Internet (WAN IP).
1er camino
También puedes usar el
ip
comando.2da forma
Si necesita averiguarlo desde un sistema que solo se encuentra en la LAN, puede configurar una clave ssh sin contraseña y agregarla a una cuenta en su máquina LAN para que pueda acceder de forma remota al sistema con el acceso WAN de esta manera.
3er camino
Si no puede ingresar a la caja que tiene acceso a WAN y está usando un enrutador / conmutador doméstico, como una caja de Linksys o Netgear. Es posible que pueda obtener la IP de ese dispositivo a través de una página de estado HTTP. También he hecho esto en el pasado, algo similar a lo que se describe en esta publicación del foro whatismyip.com .
NOTA: Este enfoque depende en gran medida del enrutador / conmutador que tenga, ya sea una marca Linksys, Netgear, etc. Cada uno tendrá su propia página única con la IP de WAN.
4ta forma
Enviar una consulta a un sitio de Internet externo que informará su dirección IP de WAN.
NOTA: Soy consciente de que la pregunta original mencionaba que estaban buscando alternativas a este enfoque, pero lo estoy poniendo aquí para que esta respuesta cubra todas las bases.
Información adicional está disponible aquí: CÓMO: Verifique su dirección IP externa desde la línea de comando
fuente
eth*
dispositivos tendrá la IP WAN. A menos que su enrutador admita ssh, tiene acceso, y si está configurado, esto no funcionará. No votando a favor, pero cualquiera que intente hacer esto es consciente.Si su sistema tiene instalado curl (la mayoría lo hace), puede usar
fuente
Cuando está detrás de un enrutador NAT con UPNP, puede usar miniupnpc para detectar la dirección IP wan:
Puede usarlo en un script, por ejemplo, para cron como:
fuente
Lo más probable es que el enrutador debe proporcionar una forma de obtener la IP externa si no se debe o no se puede utilizar un servicio externo (como ya se indicó en algunas otras respuestas). Para servicios externos, en la mayoría de las otras respuestas, se utiliza un servicio web. Esta respuesta en Unix SE sugiere usar DNS en su lugar.
Por ejemplo, usando
dig
con OpenDNS como resolver:fuente
curl ident.me
ya que confiamos en un servicio específico (enmyip.opendns,com
un servidor DNS especial)Obtenga información de su enrutador a través de ssh o curl.
Uso curl para preguntar a dyndns por mi ip pública, pero ese comando parece no ser aplicable para usted, ¿verdad?
curl http://checkip.dyndns.org 2> /dev/null| perl -pe 's,.*Address: (\d+\.\d+\.\d+\.\d+).*,$1,'
fuente
Desafortunadamente, no hay forma de detectar mecanismos como NAT que no impliquen contactar un servicio remoto. NAT es por naturaleza completamente transparente para el usuario, además de servicios rotos, y no existe un protocolo estándar para el descubrimiento de NAT.
Pero en lo que respecta a los servicios externos, tengo que sugerir el rápido y sencillo que escribí, ident.me, que puede usar tanto para IPv4 como para IPv6; para su forma más simple que puede usar
curl ident.me
y la API completa está documentada en http://api.ident.me/fuente
Si su enrutador admite NAT PMP (Protocolo de asignación de puertos), es posible que pueda recuperar su IP pública utilizando natpmp.
Hay una interfaz de línea de comando para la biblioteca natpmp de linux llamada natpmpc. En ubuntu, está en el paquete natpmp-utils . Mi enrutador no parece admitir natpmp, por lo que no estoy seguro de que la utilidad natpmpc le devuelva su IP pública.
fuente
El comando de Linux que busca es
ifconfig
suponer que está conectado directamente a Internet.Si no es así y acceder a través de servidores proxy o enrutamiento especial, la forma más fácil (como lo indican otros) es iniciar sesión / acceder a otro host y verificarlo desde allí.
Además, es posible que desee analizar esta pregunta con su administrador de sistemas de vecindario amigable.
fuente
ifconfig
es obsoleto.ifconfig
última fecha de lanzamiento. Ahora mira laìproute2
última versión. En cuanto a una fuente, consulte lartc.org/howto/lartc.iproute2.html#LARTC.IPROUTE2.WHYsed que si necesitas
fuente
curl icanhazip.com