Если предположить , что система имеет 2 локальных сетей устройств, eth0
а eth1
и eth0
подключен к локальной сети, скажем , IP - адреса 192.168.1.X и ваше eth1
устройство подключено к провайдеру (WAN) , который вы собираетесь хотите использовать следующую ifconfig
команду , чтобы получить IP - адрес для сторона WAN.
ПРИМЕЧАНИЕ. Первые 2 способа предполагают, что вы запускаете их на компьютере с двумя сетевыми устройствами и одно из них подключено к вашему провайдеру (кабельный модем и / или модем DSL). В этом случае устройство Ethernet (eth1) будет настроено с вашим IP-адресом в Интернете (WAN IP).
1-й путь
+------------------------+
+--------+ 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
Вы также можете использовать ip
команду.
% ip addr show eth1 | awk '/inet/ {print $2}' | sed 's#/.*##'
54.234.1.33
2-й способ
Если вам нужно выяснить это из системы, которая находится только в локальной сети, вы можете установить ssh-ключ без пароля и добавить его к учетной записи на вашем компьютере локальной сети, чтобы он мог получить удаленный доступ к системе с помощью доступа к глобальной сети, например, так.
+----------------+
+--------+ 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-й способ
Если вы не можете подключиться по ssh к коробке с доступом к WAN и используете домашний маршрутизатор / коммутатор, такой как Linksys или Netgear. Вы можете получить IP-адрес с этого устройства через страницу состояния HTTP. Я делал это и раньше, что-то похожее на то, что описано в этом посте на форуме 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
ПРИМЕЧАНИЕ. Этот подход в значительной степени зависит от того, какой у вас маршрутизатор / коммутатор, будь то бренд Linksys, Netgear и т. Д. У каждого будет своя уникальная страница с IP-адресом WAN.
4-й способ
Отправка запроса на внешний интернет-сайт, который сообщит ваш IP-адрес в глобальной сети.
ПРИМЕЧАНИЕ. Мне известно, что в первоначальном вопросе упоминалось, что они искали альтернативы этому подходу, но я привожу его здесь, чтобы этот ответ охватывал все основы.
+---------------+
+-------------+ +--------+ +------+ 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
Дополнительная информация доступна здесь: HOWTO: Проверьте ваш внешний IP-адрес из командной строки