传统上,我总是有一个别名/函数来方便地从CLI访问我的WAN IP:
$ type -a whatismyip
whatismyip is a function
whatismyip ()
{
curl ipv4.icanhazip.com
}
这个别名可能是很多年前创建的,可能使用了不同的域名,但始终使用HTTP。
最近我发现越来越多地参考了一个一行命令,通过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
有谁可以详细解释一下这个问题吗?:)
~~编辑:仅作澄清,我已经尝试了以上所有命令,并且它们提供了一致的结果。~~
~~编辑2:我最初忘记发布whatismyip的结果,但是没有任何DNS查询匹配HTTP查询。我正在尝试再次复制它,但是不成功。我必须回到那个咖啡厅:)~~
编辑3:我回去拿到了新数据。与上次一样一致!