dig 如何找到我的 WAN-IP-地址? “myip.opendns.com”在做什么?

dig 如何找到我的 WAN-IP-地址? “myip.opendns.com”在做什么?

我需要从路由器自动获取自己的 WAN-IP 地址。我找到了这个问题除其他外,还dig提出了一个解决方案:

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

它工作得很好,但现在我想了解它在做什么。这是我(希望)到目前为止所理解的(如果我错了,请纠正我):

  • +short只是给了我一个简短的输出
  • @resolver1.opendns.com是 DNS 服务器,询问哪个 IP 地址属于给定域

我不清楚的是myip.opendns.com。如果我改为写www.spiegel.de,我会得到域的 IP 地址www.spiegel.de, 正确的?我myip.opendns.com得到了我的路由器的WAN-IP。那么myip.opendns.com只是模拟一个解析到我的路由器的域吗?它是如何做到的?它从哪里获取我的 IP?它与网页有何不同,例如,www.wieistmeineip.de, 是做?他们还试图获取我的 IP。

在里面回答Krinkle关于我提到的问题,指出这种“dns-approach”会比“http-approach”更好。为什么它更好,有什么区别?

肯定是有区别的,因为我从dig +short myip.opendns.com @resolver1.opendns.com(ip1) 获得的 WAN-IP 也是我在路由器的 Web 界面中可以看到的,而www.wieistmeineip.de(以及其他类似站点)则给了我另一个 IP 地址 (ip2) 。我可以想象我的 ISP 正在使用某种子 LAN,因此我对网络服务器的请求将通过另一个具有 ip2 的 (ISP-) 路由器,因此www.wieistmeineip.de只能看到这个地址 (ip2)。但是,话又说回来,那myip.opendns.com又在做什么呢?

另外:从我的局域网内打开 ip1 会从我的 RasPi 中提供测试网站,从我的局域网外部(移动互联网)打开它不起作用。这是否意味着 ip1 不是正确的“互联网 IP”,而更像是 LAN IP?

答案1

首先总结一下一般用法dig:它从默认 DNS 服务器请求分配给给定域的 IP。因此,egdig google.de会请求分配给该域的 IP google.de。那会是172.217.19.99

你提到的命令是:

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

myip.opendns.com该命令的作用是:向 DNS 服务器发送对该域的 IP 的请求resolver1.opendns.com。该服务器被编程为,如果请求该特殊域,则 IP请求来自被送回。

krinkle提到了使用DNS查询WAN IP的方法更好的原因:标准化、更稳定、更快。

请注意,默认情况下,dig要求输入 IPv4 地址(DNSA记录)。如果dig通过 IPv6 建立与 opendns.com 的连接,您将不会得到任何结果(因为您要求提供 IPv4 地址,但正在使用 IPv6 地址)。因此,更强大的命令可能是:

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

这将返回您的 IP 地址,版本 4 或 6,具体取决于dig的连接。要指定 IP 版本,请使用dig -4或 ,dig -6如中所示马夫凯特尔的回答


我可以想象这两个 IP 的原因是您的路由器缓存 DNS 请求并返回旧 IP。

另一个问题可能是双栈精简版。新的互联网合同经常使用这种方式。您知道您的 ISP 是否使用 DS Lite 吗?

答案2

谷歌也提供同样的服务。

为了IPv4

dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com

为了IPv6

dig -6 TXT +short o-o.myaddr.l.google.com @ns1.google.com

哪里TXT是一个DNS 记录类型

相关内容