美文网首页
Python requests 强制使用 IPv4

Python requests 强制使用 IPv4

作者: jxtxzzw | 来源:发表于2022-03-16 03:35 被阅读0次

    在 GitLab-Runner 对我的博客数据进行预处理时,requests 这个模块会首先尝试通过 IPv6 进行访问,由于一些未知的原因,会一直超时重试,而不会转到 IPv4 再次获取资源,所以导致 CI/CD 一直失败。

    迫不得已只能让 requests 强制使用 IPv4 来获取资源。

    import socket
    import requests.packages.urllib3.util.connection as urllib3_cn
    def allowed_gai_family():
        """
         https://github.com/shazow/urllib3/blob/master/urllib3/util/connection.py
        """
        family = socket.AF_INET
        return family
    urllib3_cn.allowed_gai_family = allowed_gai_family
    

    如果要强制使用 IPv6,那么就是

    def allowed_gai_family():
        family = socket.AF_INET
        if urllib3_cn.HAS_IPV6:
            family = socket.AF_INET6 # force ipv6 only if it is available
        return family
    

    相关文章

      网友评论

          本文标题:Python requests 强制使用 IPv4

          本文链接:https://www.haomeiwen.com/subject/glbudrtx.html