Supondo que seu sistema tenha 2 dispositivos ethernet, eth0
e eth1
e eth0
estão conectados à sua LAN, digamos IPs 192.168.1.X e seu eth1
dispositivo está conectado ao seu ISP (WAN) vai querer usar o seguinte comando ifconfig
para obter o seu IP para o lado da WAN.
OBSERVAÇÃO: As 2as 2 maneiras assumem que você as está executando em um computador que possui 2 dispositivos ethernet e que um deles está conectado ao seu ISP (modem a cabo e / ou modem DSL) . Neste cenário, o dispositivo ethernet (eth1) será configurado com o seu endereço IP na internet (WAN IP).
1ª maneira
+------------------------+
+--------+ 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
Você também pode usar o comando ip
.
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
2ª maneira
Se você precisar descobrir isso em um sistema que fica apenas na LAN, você pode configurar uma chave ssh sem senha e adicioná-la a uma conta em sua máquina LAN para que possa acessar remotamente o sistema com o acesso à WAN. assim.
+----------------+
+--------+ 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 \ }' | sed -e s/addr://"
54.234.1.33
3ª via
Se você não conseguir usar ssh na caixa que tem acesso à WAN e estiver usando um roteador / switch doméstico, como uma caixa Linksys ou Netgear. Você pode obter o IP desse dispositivo por meio de uma página de status HTTP. Eu fiz isso no passado também, algo semelhante ao que é descrito neste post do fórum 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
OBSERVAÇÃO: Essa abordagem é altamente dependente de qual roteador / switch você possui, seja uma marca da Linksys, Netgear, etc. Cada um terá sua própria página exclusiva com o IP da WAN.
4º caminho
Enviando uma consulta contra um site externo que relatará seu endereço IP da WAN.
OBSERVAÇÃO: Estou ciente de que a pergunta original mencionou que eles estavam procurando alternativas para essa abordagem, mas estou colocando aqui para que essa resposta cubra todas as 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.*##'
54.234.1.33
Informações adicionais estão disponíveis aqui: COMO: Verificar endereço IP externo na linha de comando