web-dev-qa-db-ja.com

HTTP-PROXYを使用してNSLOOKUPまたはDNS解決を行う方法は?

完全に機能しているHTTPプロキシURLがあります。次に、その特定のプロキシサーバーを使用してドメイン名のIPアドレスを解決したいと思います。それが可能かどうかはわかりません。誰かが私を正しい方向に向けてくれませんか?

ユースケース:実際、私はその特定のHTTP-PROXYで出力を提供しているドメインを知っていますが、コンピューターで直接開こうとすると、そのドメインは解決されません。そのため、HTTP-PROXYサーバーを介して照会されたときに、そのドメインがどの特定のIPに解決されているかを知りたいのです。

1
Point Networks

通常のDNSを使用すると、これは不可能ですが、 DNS over HTTPS の最近の標準があり、これでほぼ機能する可能性があります。

DNS解決が実際にはプロキシサーバーで発生しないためですが、プロキシサーバーを使用してHTTPSサーバー経由でパブリックDNSの1つにアクセスできます(例: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"

ChromeFirefox の両方を、最新バージョンでDNS overHTTPSを使用してDNS解決を行うように構成できます。

1
hardillb