【问题标题】:What IP version libcurl is prioritizing by default默认情况下,libcurl 优先考虑的 IP 版本
【发布时间】:2021-09-19 21:32:47
【问题描述】:

我正在使用 libcurl 的默认解析选项

curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER);

当 libcurl 解析主机地址并获得 IPv4 地址和 IPv6 地址时,哪个地址将使用 libcurl 先 IPv4 或 IPv6? libcurl 使用什么算法来选择首先使用的 ip 地址?

有没有办法强制 libcurl 首先使用所有 ipv6 地址,如果失败则转到 ipv4 地址?

【问题讨论】:

    标签: c++ c curl libcurl


    【解决方案1】:

    没有指定顺序。我想,使用了 DNS 响应的顺序。

    这更聪明一点。如果可以重复使用与该主机的活动连接,则不会执行与已解析多个 IP 的主机的连接。

    有没有办法强制 libcurl 首先使用所有 ipv6 地址,如果失败则转到 ipv4 地址?

    使用CURLOPT_IPRESOLVE 的相应选项。在第一次失败后使用下一个。特定选项会尝试同一家族的所有可用 IP 地址。

    【讨论】:

    • 你的意思是我先用 CURL_IPRESOLVE_V6 再用 CURL_IPRESOLVE_V4 试试?
    • 你先试,CURLE_COULDNT_CONNECT之后再试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2010-10-27
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2012-11-29
    相关资源
    最近更新 更多