web-dev-qa-db-ja.com

dnsオプションを使用したCURLの実行に関する問題

私はしばらくcurlを使用して、非製品Webサービスをデバッグしています。

--dns-serversオプションを使用していると、この機能が見つからないというエラーが常に表示されます。

curl --dns-servers _MY_DNS_SERVER_IP_ https://_MY_DOMAINS_
curl: (4) A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.

私のカールバージョンは7.47.0で、Ubuntu 16.04デスクトップで実行されています。

Curlのmanページから(--dns-serversオプションについて):

This option requires that libcurl was built with a resolver backend that supports this operation.
The c-ares backend is the only such one.  (Added in 7.33.0)

インストールする必要がある別のcurlパッケージ、または見逃したオプションの依存関係はありますか?

問題と思われるヒントはありますか?

2
Pizza

DebianおよびUbuntu用にビルドされたcurlバイナリには、libc-aresのサポートが含まれていません。これは、そのライブラリ 返されない A(IPv4)とAAAA(IPv6)の両方のクエリが1つの応答で行われるため、接続しているホストがIPv6を使用しているがIPv6をサポートしていない場合、接続は失敗します。これはかなり大きな欠陥であるため(多くのオープンWi-FiアクセスポイントにはIPv6がないため)、DebianとUbuntuはそれをコンパイルしました。

--resolveを使用して、使用するIPアドレスを手動で指定することで問題が解決する場合があります。それ以外の場合、この機能を使用する必要がある場合は、独自のカールをコンパイルする必要があります。

5
bk2204