HTTP DNS

编写于

HTTP DNS 不算新兴事物,不过肯定是好玩的东西。
国内直接提供的商就不认识了,不过还有国外出名的:Google, Cloudflare

这个就拿还能用的 Cloudflare 制作一个简单的例子。

先挖出自己的 JS 里面的 rRaw 函数里面实现,稍作修改就可以使用。

function rRaw(url, callback) {
  var r = new XMLHttpRequest();
  r.async = true;
  r.addEventListener('error', function(err) {
    console.error('[rRaw]', url, 'failed', err);
  });
  r.addEventListener('load', function() {
    console.info('[rRaw]', url, 'loaded');

    var dat = JSON.parse(this.responseText);
    if (callback !== undefined) {
      callback(dat);
    }
  });

  r.open('GET', url, true);

  r.send();
  console.info('[rRaw]', url);
}

Google

rRaw('https://dns.google.com/resolve?name=example', function(dat) {
  console.log(dat);
});

Cloudflare

rRaw('https://cloudflare-dns.com/dns-query?ct=application/dns-json&name=example.com&type=AAAA', function(dat) {
  console.log(dat);
});