python – 强制使用IPv4 / IPv6的请求

前端之家收集整理的这篇文章主要介绍了python – 强制使用IPv4 / IPv6的请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何强制请求库使用特定的Internet协议版本来获取get请求?或者这可以通过 Python中的另一种方法更好地实现?我可以,但我不想使用卷曲……

澄清目的的例子:

import requests
r = requests.get('https://my-dyn-dns-service.domain/?hostname=my.domain',auth = ('myUserName','my-password'))

解决方法

我找到了一个简化的解决方案来强制urrlib3使用ipv4或ipv6. urrlib3使用此方法为Http和Https创建新连接.您可以在其中指定要使用的任何AF_FAMILY.
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
    if urllib3_cn.HAS_IPV6:
        family = socket.AF_INET6 # force ipv6 only if it is available
    return family

urllib3_cn.allowed_gai_family = allowed_gai_family
原文链接:https://www.f2er.com/python/241813.html

猜你在找的Python相关文章