在Linux上如何查看服务器的公网IP

时间:2019-11-20 08:53:53  来源:igfitidea点击:

在Linux和OS X Unix上,如何查看服务器的公网IP?
在Ubuntu或Fedora Linux上如何使用命令查看系统的动态IP地址?
Linux如何不借助第三方网站,查看本机的公网IP?
在Ubuntu,Debian,CentOS Linux,macOS/OS X和Unix上,如何使用shell命令查找自己的IP地址?

IP地址

IP是Internet协议的缩写。它用于识别Internet上的计算机或移动设备。连接到Internet的每个设备都有一个IP地址。

使用dig命令确定本机的公网IP地址:

  • 使用dig命令,查看ISP分配的公网IP:
  • dig +short myip.opendns.com @resolver1.opendns.com
  • 或者 dig TXT +short o-o.myaddr.l.google.com @ns1.google.com

输出示例:

Using domain server:
Name: resolver1.opendns.com
Address: 208.67.222.222#53
Aliases: 

myip.opendns.com has address 113.5.22.252

113.5.22.252就是你的服务器的公网IP

还可以尝试使用host命令查看相同的信息:

host myip.opendns.com resolver1.opendns.com

还可以使用Google服务器通过dig命令获取相同的信息:

dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print }'

如何将IP地址保存到shell变量中?

语法为:

myip="$(dig +short myip.opendns.com @resolver1.opendns.com)"
echo "My WAN/Public IP address: ${myip}"

输出示例:

My WAN/Public IP address: 171.33.144.102

使用第三方网站获取您的IP

请注意,出于安全原因,不建议您使用curl/wget方法。

curl checkip.amazonaws.com
curl ifconfig.me
curl icanhazip.com
curl ipecho.net/plain
curl ifconfig.co
## 将结果保存到变量 $server_ip
server_ip="$(curl ifconfig.co)"
## 显示获取到的公网iP地址
printf "Server public ip4 %s\n" $server_ip