是否有命令行方式可以显示我的机器的外向 IP 地址?
答案1
您可以编写一个脚本,调用 whatismyip.com 或类似网站并返回感兴趣的部分(尽管这些网站可能不喜欢您这样做)。通常,您必须询问其他人(其他计算机)您的 IP 是什么,因为您的计算机不知道。您也可以询问您的路由器,但解析可能会更困难。
您的计算机不知道其外部 IP 地址,因为路由器使用的是 NAT*。离开您计算机的数据包来自:[您的内部 IP],但路由器将其转换为来自:[您的路由器的外部 IP] 并将其发送到互联网。然后,路由器解开(或重新整理)返回数据包上的 to: 字段并将其转发到您的计算机。**
您可以从以下位置获得几乎干净的输出:
wget -q -O - checkip.dyndns.org
*网络地址解读。
**这只是对 NAT 工作原理的简单描述。
答案2
您可以从世界各地的各种网站获取它,例如checkip.dyndns.org。一旦您拥有一个可以告诉您 IP 地址的网站,使用 curl 来获取页面并使用 awk 来解析它应该不会太难。
curl http://checkip.dyndns.org/ 2> /dev/null | ruby -pe '$_=$_.scan(/\d+\.\d+\.\d+\.\d+/)'