gpt4 book ai didi

python - HTTPSConnection 绑定(bind)特定 ipv6 源地址失败 python3

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:40 28 4
gpt4 key购买 nike

我正在尝试使用我的 ipv4 和 ipv6 地址更新 freedns.afraid.org 的内容,并将请求与相应接口(interface)的 ip 绑定(bind); ipv4 可以,ipv6 不行。遵循 ipv6 错误代码片段(ipv4 是 simmetric):

...
conn = http.client.HTTPSConnection("freedns.afraid.org", timeout=10,source_address=(ipv6,0))
req = ("/dynamic/update.php?blablabla&address=%s" % ipv6)
conn.request("GET", req, headers=headers)
...

conn.request 返回:

Traceback (most recent call last):
File "./test2.py", line 39, in <module>
conn.request("GET", req, headers=headers)
File "/usr/lib64/python3.4/http/client.py", line 1137, in request
self._send_request(method, url, body, headers)
File "/usr/lib64/python3.4/http/client.py", line 1182, in _send_request
self.endheaders(body)
File "/usr/lib64/python3.4/http/client.py", line 1133, in endheaders
self._send_output(message_body)
File "/usr/lib64/python3.4/http/client.py", line 963, in _send_output
self.send(msg)
File "/usr/lib64/python3.4/http/client.py", line 898, in send
self.connect()
File "/usr/lib64/python3.4/http/client.py", line 1279, in connect
super().connect()
File "/usr/lib64/python3.4/http/client.py", line 871, in connect
self.timeout, self.source_address)
File "/usr/lib64/python3.4/socket.py", line 516, in create_connection
raise err
File "/usr/lib64/python3.4/socket.py", line 506, in create_connection
sock.bind(source_address)
socket.gaierror: [Errno -9] Address family for hostname not supported

ipv6 没问题:

ping6 -n afraid.org
PING afraid.org(2604:8b80:2:8::2) 56 data bytes
64 bytes from 2604:8b80:2:8::2: icmp_seq=1 ttl=45 time=173 ms

最佳答案

您只能将本地地址设置为与远程相同的地址族。为了能够使用 IPv6 本地地址,需要远程地址也可作为 IPv6 使用。

不幸的是,这里的情况并非如此; freedns.afraid.org 没有 IPv6 DNS 条目:

$ host -t AAAA freedns.afraid.org
freedns.afraid.org has no AAAA record

请注意,freedns.afraid.orgafraid.org不是同一个地址;后者确实有 IPv6 地址,这就是您能够 ping 通它的原因:

$ host -t AAAA afraid.org
afraid.org has IPv6 address 2604:8b80:2:8::2

关于python - HTTPSConnection 绑定(bind)特定 ipv6 源地址失败 python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44100229/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com