Zakładając, że system ma 2 urządzeń Ethernet, eth0
a eth1
i eth0
jest podłączony do sieci LAN, powiedzmy IP 192.168.1.X a eth1
urządzenie jest podłączone do ISP (WAN) masz zamiar chcesz użyć następującego ifconfig
polecenia, aby otrzymać swój adres IP za strona WAN.
UWAGA: Pierwsze 2 sposoby zakładają, że uruchamiasz je na komputerze, który ma 2 urządzenia Ethernet i że jeden z nich jest podłączony do twojego ISP (modem kablowy i / lub modem DSL). W tym scenariuszu urządzenie Ethernet (eth1) zostanie skonfigurowane z Twoim adresem IP w Internecie (WAN IP).
1. sposób
+------------------------+
+--------+ 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
Możesz także użyć ip
polecenia.
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
2. sposób
Jeśli chcesz dowiedzieć się tego z systemu, który znajduje się tylko w sieci LAN, możesz skonfigurować klucz SSH bez hasła i dodać go do konta na komputerze LAN, aby mógł on zdalnie uzyskiwać dostęp do systemu za pomocą dostępu WAN.
+----------------+
+--------+ 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
3. sposób
Jeśli nie możesz ssh połączyć się z urządzeniem, które ma dostęp do sieci WAN i używasz domowego routera / przełącznika, takiego jak Linksys lub Netgear. Możesz być w stanie uzyskać adres IP z tego urządzenia za pośrednictwem strony statusu HTTP. Robiłem to również w przeszłości, coś podobnego do tego, co opisano w tym wpisie na 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
UWAGA: To podejście jest wysoce zależne od posiadanego routera / przełącznika, czy jest to marka Linksys, Netgear itp. Każda z nich będzie miała swoją własną unikalną stronę z WAN IP.
4. sposób
Wysłanie zapytania do zewnętrznej strony internetowej, która zgłosi Twój adres IP WAN.
UWAGA: Zdaję sobie sprawę, że pierwotne pytanie wspomniało, że szukali alternatyw dla tego podejścia, ale umieszczam je tutaj, aby ta odpowiedź obejmowała wszystkie podstawy.
+---------------+
+-------------+ +--------+ +------+ 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
Dodatkowe informacje są dostępne tutaj: HOWTO: Sprawdź zewnętrzny adres IP z wiersza poleceń