假设你的系统有2台以太网设备,eth0并eth1与eth0连接到您的网络,说IP地址192.168.1.X,你的eth1设备连接到您的ISP(WAN),你会想用下面的ifconfig命令来获得你的IP为WAN端。
注意:第一种2种方式假定您正在具有2个以太网设备的计算机上运行它们,并且其中一个已连接到ISP(电缆调制解调器和/或DSL调制解调器)。在这种情况下,将使用您在Internet(WAN IP)上的IP地址来配置以太网设备(eth1)。
第一种方式
+------------------------+
+--------+ 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
第二路
如果您需要从仅位于LAN上的系统中找到此信息,则可以设置无密码的ssh密钥,并将其添加到LAN机器上的帐户中,以便它可以像这样通过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
第三种方式
如果您无法进入具有WAN访问权限的盒子,并且正在使用家用路由器/交换机,例如Linksys或Netgear盒子。您可能可以通过HTTP状态页面从该设备获取IP。我过去也这样做过,类似于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://:@192.168.1.1/Status_Router.asp | grep "ipaddress" | cut -d" " -f2
注意:此方法高度依赖于您拥有的路由器/交换机,无论它是Linksys,Netgear等品牌。每个人都有自己的独特页面,上面有WAN IP。
第四方式
向外部互联网站点发送查询,该查询将报告您的WAN 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: \(.*\)
54.234.1.33