【发布时间】:2017-08-11 14:38:43
【问题描述】:
我想用 urllib 获取 IPv6 页面。 使用方括号 IPv6 表示法,但当我给它 FQDN 时,我不知道如何(轻松)说服 python 执行 IPv6 请求 就像下面的ip是:https://www.dslreports.com/whatismyip
from sys import version_info
PY3K = version_info >= (3, 0)
if PY3K:
import urllib.request as urllib
else:
import urllib2 as urllib
url = None
opener = urllib.build_opener()
opener.addheaders = [('User-agent',
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36")]
url = opener.open("http://[2607:fad0:3706:1::1000]/whatismyip", timeout=3)
content = url.read()
【问题讨论】:
-
澄清一下,当 IPv4 和 IPv6 地址都可用时,您希望始终使用 IPv6 地址吗?
-
是的,因为代码应该依次但不按顺序检查 IPv4,然后检查 IPv6。