我有一个运行良好的 HTTP 代理 URL,现在我想使用该特定代理服务器解析某个域名的 IP 地址。我不确定这是否可行。有人能给我指明正确的方向吗?
用例:实际上,我知道一个域名使用该特定 HTTP-PROXY 提供输出,但当我尝试直接在计算机上打开它时,该域名甚至无法解析。因此,我想知道当通过 HTTP-PROXY 服务器查询时,该域名解析到哪个特定 IP
答案1
使用普通 DNS 是无法实现这一点的,但最近有一个标准通过 HTTPS 进行 DNS这几乎可以解决这个问题。
我说几乎是因为 DNS 解析实际上不会在代理服务器上进行,但你可以使用代理服务器通过 HTTPS 服务器访问其中一个公共 DNS(例如 8.8.8.8 [https://dns.google.com/experimental]对于 Google 或 1.1.1.1 [https://cloudflare-dns.com/dns-query]对于 Cloudflare,或者你可以使用我的代码运行你自己的https://www.hardill.me.uk/wordpress/2018/04/14/dns-over-https/)
例如
curl -H "Content-Type: application/dns-json" "https://dns.google.com/resolve?name=www.google.com&type=A"
给出如下答案:
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": false,
"CD": false,
"Question":[
{
"name": "www.google.com.",
"type": 1
}
],
"Answer":[
{
"name": "www.google.com.",
"type": 1,
"TTL": 134,
"data": "216.58.210.36"
}
]
}
然后,您需要配置 curl(或任何用户代理)以使用代理发出请求,例如
export HTTPS_PROXY=http://proxy.server.com:8080
curl -H "Content-Type: application/dns-json" "https://dns.google.com/resolve?name=www.google.com&type=A"