传统上,我总是有一个别名/函数,以便从 CLI 轻松访问我的 WAN IP:
$ type -a whatismyip
whatismyip is a function
whatismyip ()
{
curl ipv4.icanhazip.com
}
此别名是多年前创建的,可能使用不同的域,但始终使用 HTTP。
最近发现引用的越来越多的one-liner,它通过DNS找到相同的信息。
但真的一样吗?
在写这篇文章时,我使用的是 4G 网络共享,结果因协议而异。
更令人惊讶的是,它们在 DNS 服务器之间也有所不同。
有趣的是ns1.google.com
, 与 有不同的结果8.8.8.8
。
$ whatismyip
92.251.255.11
$ dig +short myip.opendns.com @resolver1.opendns.com
178.167.254.133
$ dig TXT +short o-o.myaddr.l.google.com @8.8.8.8
"74.125.73.77"
"edns0-client-subnet 178.167.255.120/32"
$ dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
"178.167.255.120"
$ ifconfig | grep 'inet addr:'
inet addr:127.0.0.1 Mask:255.0.0.0
inet addr:192.168.42.125 Bcast:192.168.42.255 Mask:255.255.255.0
inet addr:10.47.206.109 Bcast:10.63.255.255 Mask:255.192.0.0
有人有精神详细解释一下吗?:)
~~编辑:为了澄清,我在某种程度上尝试了上述所有命令,它们提供了一致的结果。~~
~~ EDIT2:我最初忘记发布whatismyip
结果,但没有一个DNS 查询与HTTP 匹配。我正在尝试复制它,但没有成功。我得回那个咖啡厅了:)~~
EDIT3:我回到那里并获得了新数据。和上次一样!