安全的域名解析
不想暴露域名解析过程,防止被抓包可以简单的用curl命令 如下
curl "https://cloudflare-dns.com/dns-query?name=xiaokefang.com&type=A" -H "accept:application/dns-json"
返回内容如下
{"Status": 0,"TC": false,"RD": true, "RA": true, "AD": false,"CD": false,"Question":[{"name": "xiaokefang.com.", "type": 1}],"Answer":[{"name": "xiaokefang.com.", "type": 5, "TTL": 600, "data": "overdue.aliyun.com."},{"name": "overdue.aliyun.com.", "type": 1, "TTL": 166, "data": "47.91.169.15"}]}
上面是cloudflare的格式不是标准格式
下面介绍Google的方案
还是解析xiaokefang.com
1.需要按照rfc1035规范把域名按照DNS协议打包
2.把打包好的数据进行base64得到一个字符串
3.把得到的base64字符串末尾填充的等号去掉 如果没有就跳过
4.现在就可以用curl来请求了 如下
curl -L "https://dns.google/dns-query?dns=AAABAAABAAAAAAAACnhpYW9rZWZhbmcDY29tAAABAAE" -H "accept = application/dns-message"
5.保存好收到的数据 里面按照DNS协议解析就可以得到解析后的IP了
curl -L "https://8.8.8.8/dns-query?dns=AAABAAABAAAAAAAACnhpYW9rZWZhbmcDY29tAAABAAE" -H "accept = application/dns-message" -H "Host:dns.google"
国内应该不能使用dns.google可以用这个链接里面的服务器试一下https://github.com/curl/curl/wiki/DNS-over-HTTPS