如何在Linux上的命令行中找到我的公共IP地址

时间:2020-01-09 14:17:09  来源:igfitidea点击:

如何在Linux和OS X Unix命令行上找到我的公共IP地址,以与自己的bash shell脚本一起使用,而无需使用第三方网站?是否有命令行选项可以在Ubuntu或Fedora Linux上显示我的动态IP地址?在Linux或类Unix操作系统(例如FreeBSD,OpenBSD,NetBSD,Apple OS X等)上,有很多方法可以找到您的公共IP地址或广域网IP。本教程说明如何在Ubuntu,Debian,CentOS Linux,macOS/OS X和Unix bash shell上使用命令行选项查找自己的IP地址。

说明IP地址

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

IP地址可用于个性化信息。

使用dig命令确定我的公共IP地址:

  • 打开终端应用程序。
  • 在Linux,OS X或类似Unix的操作系统上执行以下dig(域信息groper)命令,以查看ISP分配的您自己的公共IP地址:
  • dig + short myip.opendns.com @ resolver1.opendns.com或dig TXT + short o-o.myaddr.l.google.com @ ns1.google.com
  • 您应该在屏幕上看到您的IP地址。这是无需使用第三方网站即可找到您的IP地址的最快方法。

输出示例:
使用dig命令查找您的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: 10.16.144.194

在路由器上查找公用/WAN IP地址

一些ADSL/Cable路由器允许您使用telnet或ssh登录到路由器:

telnet your-router-ip-here
ssh user@your-router-ip-here
telnet 192.168.0.254
ssh [email protected]
[admin@dd-wrt ~]#  ifconfig eth1 | grep 'inet addr:' 
[admin@dd-wrt ~]#  ip addr show nas01

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

请注意,出于安全原因,我不建议您使用curl/wget方法。
你被警告了:

curl checkip.amazonaws.com
curl ifconfig.me
curl icanhazip.com
curl ipecho.net/plain
curl ifconfig.co
## store output in $server_ip ##
server_ip="$(curl ifconfig.co)"
## Display it ##
printf "Server public ip4 %s\n" $server_ip