2

cURL経由でGoogleサービスに接続するPHPベースのCMS用に配布するアプリケーションがあります。最近 (Google が 6 月に IPv6 に移行して以来)、接続時間が極端に遅い (あるケースでは 150 秒)、またはまったく接続されていない (例: curl エラー: 2001:4860:b007 に接続できませんでした: :5F: ネットワークに到達できません)。

SO およびその他のリソースを介して、curl に IPv4 の使用を強制すると、これらの問題が修正されることがわかりました。

if(defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4'))
{
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
}   

私の推測では、これらのリクエストが行われているサーバーの構成が間違っていると思います (実際には IPv6 をサポートしていないのに、サポートしていると言っているのでしょうか?)。しかし、DNS ルックアップに対する IPv6 応答の複雑さについては、ほとんど知りません。

IPv4 を強制することによって、適切に構成されたサーバーでエラー発生するように自分自身を設定しますか?

互換性を確認し、それに応じて cURL オプションを設定するために使用できる堅牢な方法はありますか?

4

0 に答える 0