Assumendo che il sistema dispone di 2 dispositivi ethernet, eth0
ed eth1
e eth0
è collegato alla LAN, IP dire 192.168.1.X e il vostro eth1
dispositivo è collegato al provider di servizi Internet (WAN) si sta andando a voler utilizzare il seguente ifconfig
comando per ottenere il vostro IP per il lato WAN.
NOTA: I primi 2 modi presuppongono che tu li stia eseguendo su un computer che ha 2 dispositivi Ethernet e che uno di essi sia collegato al tuo ISP (modem via cavo e / o modem DSL). In questo scenario il dispositivo Ethernet (eth1) verrà configurato con il tuo indirizzo IP su Internet (IP WAN).
1a via
+------------------------+
+--------+ 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
Puoi anche usare il ip
comando.
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
2a via
Se è necessario scoprirlo da un sistema che si trova solo sulla LAN, è possibile impostare una chiave ssh senza passphrase e aggiungerla a un account sul proprio computer LAN in modo che possa accedere in remoto al sistema con l'accesso WAN in questo modo.
+----------------+
+--------+ 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
3a via
Se non riesci ad accedere a SSH nella casella con accesso WAN e stai utilizzando un router / switch domestico come un box Linksys o Netgear. Potresti essere in grado di ottenere l'IP da quel dispositivo tramite una pagina di stato HTTP. L'ho fatto anche in passato, qualcosa di simile a ciò che è descritto in questo post sul forum 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: questo approccio dipende fortemente dal router / switch che si possiede, che si tratti di un marchio Linksys, Netgear, ecc. Ognuno avrà la propria pagina unica con l'IP WAN su di esso.
4 ° modo
Invio di una query a un sito Internet esterno che riporterà il proprio indirizzo IP WAN.
NOTA: sono consapevole che la domanda originale menzionava che stavano cercando alternative a questo approccio, ma lo sto inserendo qui in modo che questa risposta copra tutte le basi.
+---------------+
+-------------+ +--------+ +------+ 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
Ulteriori informazioni sono disponibili qui: HOWTO: Controlla il tuo indirizzo IP esterno dalla riga di comando