使用icanhazip.com在python中使用mechanize查找IP,输出不是我所期望的

时间:2013-01-21 19:50:47

标签: python networking mechanize

我正在使用icanhazip.com查找我的IP地址。当我使用浏览器访问该站点时,我的ip以我通常看到的方式输出:174.xx.xx.xx

当我使用python和mechanize从icanhazip.com获取我的ip时,我得到这个结果:2001:4800:7810:512:13b2:ccd5:ff04:c5f4

我确信它只是以我从未见过的方式表示IP地址。如何将其转换为我习惯的形式?

提前致谢。

In [9]: br.open("http://icanhazip.com/")
Out[9]: <response_seek_wrapper at 0x30bbe60 whose wrapped object = <closeable_response at 0x30bb0e0 whose fp = <socket._fileobject object at 0x2dd5ed0>>>

In [10]: br.open("http://icanhazip.com/").read()
Out[10]: '2001:4800:7810:512:13b2:ccd5:ff04:c5f4\n'

In [11]: print br.open("http://icanhazip.com/").read()
2001:4800:7810:512:13b2:ccd5:ff04:c5f4

3 个答案:

答案 0 :(得分:17)

我是icanhazip.com的运营商,我经常收到这个问题。我有两个额外的DNS记录,可以帮助您获得所需的结果。如果要强制进行IPv4查找,请使用ipv4.icanhazip.com。对于IPv6,请使用ipv6.icanhazip.com

如果仅访问icanhazip.com,您看到的结果取决于您的计算机配置为使用IPv4或IPv6网络的方式。大多数操作系统默认使用IPv6(如果可以使用)。

答案 1 :(得分:1)

看起来像是IPv6。有关详细信息,请参阅Wikipedia article

尝试urlopen会得到什么?

答案 2 :(得分:1)

这当然是IPv6,并且没有直接转换为IPv4中使用的xxx.xxx.xxx.xxx格式,它们是不同的地址。