如何使用python2.7获取公共IP?不是私有IP。
当前有几种选择:
以下是可以利用上述每种方法的确切方法。
from urllib2 import urlopen my_ip = urlopen('http://ip.42.pl/raw').read()
这是我找到的第一个选项。对于脚本来说非常方便,您不需要在这里进行JSON解析。
from json import load from urllib2 import urlopen my_ip = load(urlopen('http://jsonip.com'))['ip']
似乎该域的唯一目的是返回JSON中的IP地址。
from json import load from urllib2 import urlopen my_ip = load(urlopen('http://httpbin.org/ip'))['origin']
我经常建议初级开发人员使用httpbin.org服务来测试其脚本/应用程序。
from json import load from urllib2 import urlopen my_ip = load(urlopen('https://api.ipify.org/?format=json'))['ip']
这项服务的强大性来自于没有限制(没有速率限制),基础架构(放在Heroku上,考虑到高可用性)和灵活性(适用于IPv4和IPv6)。
编辑 :将httpbin.org添加到可用选项列表中。
编辑 :感谢kert的注释,添加了ipify.org。