Suponiendo que el sistema dispone de 2 dispositivos de Ethernet, eth0
y eth1
, y eth0
está conectado a la red LAN, por ejemplo IPs 192.168.1.X. y su eth1
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
+------------------------+
+--------+ WAN IP | Computer that wants | LAN IP
|Internet|--------------| to know WAN IP |------------
+--------+ 54.234.1.33 | +------+ +------+ | 192.168.1.1
+-| eth1 |------| eth0 |-+
+------+ +------+
% ifconfig eth1 | awk '/inet / { print $2 }' | sed -e s/addr://
54.234.1.33
También puedes usar el ip
comando.
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
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.
+----------------+
+--------+ WAN IP +-------------+ LAN IP | Computer that |
|Internet|----------------|remote-server|-----------------| wants to know |
+--------+ 54.234.1.33 +----+-----+----+ 192.168.1.x +----+ WAN IP |
|eth1| |eth0| |eth0|------------+
+----+ +----+ +----+
% ssh ruser1@remote-server "ifconfig eth1 | awk '/inet / { print \$2 }' | sed -e s/addr://"
54.234.1.33
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 .
192.168.1.2
+----------------+
+--------+ WAN IP +-------------+ LAN IP | Computer that |
|Internet|----------------|router/switch|-----------------| wants to know |
+--------+ 54.234.1.33 +-------------+ 192.168.1.x +----+ WAN IP |
192.168.1.1 |eth0|------------+
+----+
# something like this....
% wget -q -O - http://<username>:<password>@192.168.1.1/Status_Router.asp | grep "ipaddress" | cut -d" " -f2
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.
+---------------+
+-------------+ +--------+ +------+ LAN IP | Computer that |
|whatsmyip.com|---|Internet|---|router|---------------| wants to know |
+-------------+ +--------+ +------+ 192.168.1.x +----+ WAN IP |
you're 54.234.1.33 |eth0|-----------+
+----+
# 1st server
% wget -qO - ipv4bot.whatismyipaddress.com
54.234.1.33
# 2nd server
% curl 'https://api.ipify.org?format=json'
{"ip":"54.234.1.33"}
% curl 'https://api.ipify.org?format=txt'
54.234.1.33
# 3rd server
% curl -s checkip.dyndns.org | sed 's#.*Address: \(.*\)</b.*#\1#'
54.234.1.33
Información adicional está disponible aquí: CÓMO: Verifique su dirección IP externa desde la línea de comando