私はしばらく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パッケージ、または見逃したオプションの依存関係はありますか?
問題と思われるヒントはありますか?
DebianおよびUbuntu用にビルドされたcurl
バイナリには、libc-aresのサポートが含まれていません。これは、そのライブラリ 返されない A(IPv4)とAAAA(IPv6)の両方のクエリが1つの応答で行われるため、接続しているホストがIPv6を使用しているがIPv6をサポートしていない場合、接続は失敗します。これはかなり大きな欠陥であるため(多くのオープンWi-FiアクセスポイントにはIPv6がないため)、DebianとUbuntuはそれをコンパイルしました。
--resolve
を使用して、使用するIPアドレスを手動で指定することで問題が解決する場合があります。それ以外の場合、この機能を使用する必要がある場合は、独自のカールをコンパイルする必要があります。