确定我的公共IP的命令?

如果我用google检查,我可以看到我的公共IP。在Ubuntu的命令行中,是否有什么东西能让我得到同样的答案?

解决办法

如果你不在路由器后面,你可以用ifconfig找出它。

如果你在路由器后面,那么你的电脑将不知道公共IP地址,因为路由器会进行网络地址转换。 你可以使用curlwget询问一些网站你的公共IP地址是什么,然后从中提取你需要的信息。


curl -s https://checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/
评论(16)

为了找到外部IP,你可以使用基于网络的外部服务,或者使用基于系统的方法。比较容易的是使用外部服务,同时基于ifconfig的解决方案只有在你不在NAT后面的情况下才会在你的系统中工作。下面详细讨论这两种方法。

使用外部服务寻找外部IP

最简单的方法是通过命令行浏览器或下载工具使用外部服务。由于Ubuntu中的`wget'是默认可用的,我们可以使用它。
要找到你的IP,可以使用--

$ wget -qO- https://ipecho.net/plain ; echo

礼尚往来

你也可以用lynx'(浏览器)或curl'代替`wget',并对上述命令稍作改动,以找到你的外部IP。

使用curl来查找ip。

$ curl https://ipecho.net/plain

为了获得更好的格式化输出,请使用。

$ curl https://ipecho.net/plain ; echo

一个更快的(可以说是最快的)方法,使用digOpenDNS作为解析器。

这里的其他答案都是通过HTTP到一个远程服务器。其中一些 它们需要对输出进行解析,或者依靠User-Agent标头 来使服务器以纯文本方式响应。它们的变化也很 经常改变(倒闭、改名、贴广告、可能改变 输出格式等)。)

1.DNS响应协议是标准化的(格式将保持兼容)。 历史上的DNS服务(OpenDNS,谷歌公共DNS,......)往往存活得更久,更稳定,可扩展,通常被视为 比起什么新的时髦的whatismyip.com HTTP服务今天的热度。 3.(对于那些关心微观优化的极客来说),这种方法应该在本质上更快(即使只是几个微秒)。

使用Dig与OpenDNS作为解析器。

$ dig +short myip.opendns.com @resolver1.opendns.com

111.222.333.444

抄袭自: https://unix.stackexchange.com/a/81699/14497

在不依赖外部服务的情况下寻找外部IP

**如果你知道你的网络接口名称***

在你的终端键入以下内容。

$ LANG=c ifconfig  | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'

在上面,将`替换为你的实际接口的名称,例如:eth0eth1pp0`,等等。

示例用法:

$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444

如果你不知道你的网络接口名称

在你的终端键入以下内容(这会得到你系统中每个网络接口的名称和ip地址)。

$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'

示例用法:

$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444

注意:输出是指示性的,不是真实的。

提供: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/

更新

  1. LANG=c'已被添加到基于ifconfig'的使用中,因此它总是给出英文输出,而不考虑locale设置。
评论(10)

我正在使用的是:

wget -O - -q icanhazip.com

是的,你可以拥有ip :-)

评论(1)