我正在寻找一种使用 Linux 中的命令提示符获取 IP 地址的方法。我知道当您输入“ifconfig”时,您可以获取本地 IP 地址(即 192.168.0.103),但我正在寻找从 ISP 获得的 IP 地址。我如何从 Linux 获取此地址而无需访问某些网站?
答案1
如果您的机器分配了本地 IP 地址,它可能不知道您的公开地址。您可以查询不在本地网络上的服务器来发现您的公开地址。
$ curl whatismyip.org
答案2
如果您的计算机位于带有地址转换防火墙的企业局域网中,则很遗憾您的计算机上没有关于外部可见地址的信息。您的计算机只知道它有一个本地 IP(例如 192.168.0.103),可用于连接到 Internet 上的任何主机。从您的计算机的角度来看,地址转换防火墙是完全透明的。
唯一的方法是使用外部“观察者”,例如 whatismyip.org 来提供帮助。如果您不喜欢通过完整的 Web 浏览器访问它,那么 curl 是一种替代方案,正如 Samuel K 指出的那样
答案3
将其添加到 Linux 上的 ~/.bashrc 文件或 Mac 上的 ~/.bash_profile 中。
alias myip='wget http://automation.whatismyip.com/n09230945.asp -O - -q ; echo'
然后运行
source ~/.bashrc
或者:
source ~/.bash_profile
Source 将激活您对 bash 文件所做的更改。它只需要一次。
现在从命令行输入“myip”,您就会获得公共 IP 地址。
:# myip
23.23.133.111