【问题标题】:Getting the WAN IP: difference between HTTP and DNS获取 WAN IP:HTTP 和 DNS 的区别
【发布时间】:2016-08-08 14:51:58
【问题描述】:

传统上,我总是有一个别名/函数,以便从 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

任何人有精神一些详细解释这一点? :)

~~编辑:为了澄清,我在某种程度上尝试了上述所有命令,它们提供了一致的结果。~~

~~EDIT2:我最初忘记发布whatismyip 结果,但没有一个DNS 查询与HTTP 匹配。我正在尝试复制它,但没有成功。我得回那个咖啡厅了:)~~

EDIT3:我回到那里并获得了新数据。和上次一样!

【问题讨论】:

    标签: linux http networking dns wan


    【解决方案1】:

    您进行的两个 DNS 查询:

    $ dig +short myip.opendns.com @resolver1.opendns.com
    $ dig TXT +short o-o.myaddr.l.google.com @ns1.google.com
    

    应该返回相同的地址:您的外部 IP。也许您的外部 IP 在您的请求之间发生了变化,这就是您得到不同结果的原因。 它绝不是 DNS 协议的一部分,而是那些 DNS 服务器使返回发起查询的 IP 成为可能的技巧。 in this post 列出了这些和其他一些 DNS 技巧。

    另一方面:

    $ dig TXT +short o-o.myaddr.l.google.com @8.8.8.8
    

    无法给您客户端的 IP,因为 8.8.8.8 不是 o-o.myaddr.l.google.com 的权威 DNS 服务器(ns1.google.com 是)所以它不会直接获取您的 IP,您看到的响应是尽力而为DNS协议允许的近似值(逐行描述):

    1. TXT 记录的权威服务器联系的 DNS 解析器的 IP 地址。
    2. 如果可用,DNS 解析器代表其进行查询的客户端(在本例中为您)的子网 (edns-client-subnet)。

    有关edns-client-subnet的更多详细信息,您可以阅读this article

    【讨论】:

    • 我在问题中添加了一个说明。我的外部 IP 没有改变。
    • 哪个 DNS 查询与 HTTP IP 匹配?
    • HTTP 是否也来自 178.167.254/255 子网?
    • 不,它来自完全不同的一个。 86.45。某事
    • 这真的很奇怪,我的回答描述了我的网络上的行为,这是一个典型的 NAT 后面的家庭网络。也许您的网络对不同的请求使用了某种代理。
    猜你喜欢
    • 1970-01-01
    • 2018-12-08
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多