如何使用 HTTP-PROXY 进行 NSLOOKUP 或 DNS 解析?

Poi*_*rks 4 networking dns proxy

我有一个运行良好的 HTTP 代理 URL,现在我想使用该特定代理服务器解析某些域名的 IP 地址。我不确定这是否可能。有人可以指出我正确的方向吗?

用例:实际上,我知道一个域正在使用特定的 HTTP-PROXY 提供输出,但当我尝试直接在计算机上打开它时,该域甚至无法解析。所以我想知道当通过 HTTP-PROXY 服务器查询时该域正在解析到哪个特定 IP

har*_*llb 5

使用普通的 DNS 是不可能的,但最近有一个基于 HTTPS 的 DNS标准几乎可以实现这一点。

我说几乎是因为 DNS 解析实际上不会发生在代理服务器上,但您可以使用代理服务器通过 HTTPS 服务器访问公共 DNS 之一(例如 8.8.8.8 [ https://dns.google.com/对于 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"
Run Code Online (Sandbox Code Playgroud)

给出如下答案:

{
  "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"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以配置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"
Run Code Online (Sandbox Code Playgroud)

在最新版本中, ChromeFirefox都可以配置为使用 DNS over HTTPS 进行 DNS 解析