本地DNS探测分析

  • 2017-07-10
  • 0
  • 2

几乎所有的公共DNS均声称采用BGP Global AnyCast技术部署,为了更直观的分析DNS服务器的性能以及解析准确度编写此工具用于探测DNS服务器虚拟IP背后的真实节点数量。
本地递归DNS一般通过anycast或集群方式部署,用户在使用一个IP接入时背后可能使用了众多的服务器IP节点。本地DNS探测分析API可通过递归DNS的其中任意IP查询到其他所有提供服务的IP。
工作原理:
LDPA的后端下发分布式查询请求(各地运营商),请求的域名为XSICO事先注册好并托管到自己的NS服务器上的。然后LDPA记录递归查询的源 ip,该ip就是所谓的真实ip。
REQUEST URL:
https://ldpa.api.xsico.cn/?tsig=
参数:[tsig] – DNS服务器IP
传值方式:GET
数据格式:JSON
DEMO程序:http://dns.dujin.org/
示例:

function Xcurl($url){
        $ip = mt_rand(1,255).".".mt_rand(1,255).".".mt_rand(1,255).".".mt_rand(1,255)."";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch,CURLOPT_HTTPHEADER,array("CLIENT-IP".$ip."", "X_FORWARD_FOR:".$ip."")); 
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding:gzip'));
        curl_setopt($ch, CURLOPT_ENCODING, "gzip");
        $result=curl_exec($ch);
        $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); 
        curl_close($ch);
        return $result;
    }
function dump($vars, $label = '', $return = false) {
    if (ini_get('html_errors')) {
        $content = "<pre>\n";
        if ($label != '') {
            $content .= "<strong>{$label} :</strong>\n";
        }
        $content .= htmlspecialchars(print_r($vars, true));
        $content .= "\n</pre>\n";
    } else {
        $content = $label . " :\n" . print_r($vars, true);
    }
    if ($return) { return $content; }
    echo $content;
    return null;
}
if(isset($_GET['dns'])&&!EMPTY($_GET['dns'])){
	$url = 'https://ldpa.api.xsico.cn/?tsig='.$_GET['dns'];
    echo dump(json_decode(Xcurl($url),true));
}else{
	echo 'NO DNS IP';
}

评论

CC共享许可协议:BY-NC-SA 4.0 - 友情链接 - Theme by Qzhai