FPs

獲取Local DNS 地址信息

在網頁中獲取local dns 不太方便,看看大家是怎麼做的。

阿里雲CDN 診斷工具

阿里雲CDN提供的阿里昆仑用户诊断工具
alicdn_local_dns

獲取到local dns 的這個請求:

https://123-66-35-57-122894414.dns-detect.alicdn.com/api/cdnDetectHttps?method=commitDetectHttps&detectId=122894414&cb=jQuery110102821084573750223_1503489263656&_=1503489263658

一個奇怪的域名,每次訪問都不一樣:
123-66-35-57-122894414.dns-detect.alicdn.com
設備ID :
detectId=122894414

用戶訪問一個域名,瀏覽器給按照分配的local dns 發起dns 迭代查詢,最後向域名的權威服務器名查詢,最後這一步的時候可以得到local dns 的地址。

如下圖:

microsoft-offical-course-20410c07-18-638
圖片來源:Microsoft Offical Course 20410C_07

要怎麼把local dns 地址和用戶對應起來呢?這就是前面那個奇怪的域名的作用,每次的域名都不同,當瀏覽器訪問的時候,我們就可以根據這個唯一域名再結合域名服務器的信息,把對應的local dns 返回給用戶。

騰訊華佗

騰訊的華佗分析系統utp.qq.comping.huatuo.qq.com
qq_ldns_1

騰訊這服務現在好像挂了。。不過不妨礙我們分析它的原理。

http://utp.qq.com/getldns.php?d=
1503491352464.1724.sngdia.imtmp.net

這個imtmp.net 的域名看下whois 信息,屬於騰訊:
imtmp.net

前面這個數字看着像時間戳,做法應該和阿里的做法一樣,那用戶對這個域名的查詢在哪裏呢。

翻下代碼:
qq_ldns_2

function getDNS() {

    $.get("/getldns.php?d=" + dns_domain, function(ldndsip) {

          if (typeof saveDns == "function") {

              saveDns(ldndsip);
          }
    });

    return true;
}

    function ldnsIMG() {
        var img = document.createElement("IMG");
        if (img) {
            img.style.display = "none";
            document.body.appendChild(img);
            dns_domain = new Date().getTime() + Math.random() * 1000000 + ".sngdia.imtmp.net";

           img.src = "http://" + dns_domain + '/s';
       }
    }

果然和時間戳有關。翻下前面,也找到了這個圖片的請求:
qq_ldns_3

真是多此一舉。。。

網易DNS 檢測工具

網易也有一個DNS檢測工具

netease_ldns

>GET https://only-425945-183-240-25-249.nstool.netease.com/
>Response: 您好,尊敬的网易用户<br>您的IP地址信息: 183.240.25.249 广东省广州市移动<br>您的DNS地址信息: 211.136.209.212 广东省广州市移动<br>您的DNS设置正确

也是類似的做法。

豆瓣用户检测工具

發現豆瓣也有一個檢測工具:
douban_ldns

居然直接用阿里的接口。。。

whoami.akamai.net

akamai 提供了一個域名,直接ping 或者dig 就可以獲取local dns地址,這個很酷,直接把local dns 當作查詢結果返回:

akamai_ldns

Anycast

使用以上工具多次檢測,如果會發現檢測到的地址不同,可能是由於local dns 做了AnyCast,出口ip 有多個造成。

This article is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
If you reprint it, please indicate the source: http://fangpeishi.com/local_dns.html