ipify的官方客户端库:一个简单的IP地址API。
项目描述
ipify的官方客户端库:一个简单的IP地址API。
元数据
作者:Randall Degges
电子邮件: r@rdegges.com
状态:维护中,活跃
目的
ipify是互联网上最好的IP地址查找服务。它快速、简单、可扩展、开源,且资金充足(由我提供!)。
简而言之:如果您需要一种获取公网IP地址的方法,ipify是最佳选择!
此库将从ipify的API服务中检索您的公网IP地址,并以字符串形式返回。它不能再简单了。
此库还有一些您可能关心的其他优秀功能
如果由于任何原因请求失败,它将使用指数退避算法重试3次,以实现最大效果。
此库正确处理异常,下面的使用示例展示了如何以万无一失的方式处理错误。
本库仅通过HTTPS进行API请求。
安装
要安装ipify,只需运行
$ pip install ipify
这将自动安装库的最新版本。
用法
使用此库非常简单。这里有一个简单的示例
>>> from ipify import get_ip
>>> ip = get_ip()
>>> ip
u'96.41.136.144'
至于异常处理,有几种方式可能导致失败
ipify服务已关闭(不太可能),或者
由于某种类型的网络错误(DNS、无互联网等),您的机器无法获取到ipify的请求。
以下是如何处理所有这些边缘情况的方法
from ipify import get_ip
from ipify.exceptions import ConnectionError, ServiceError
try:
ip = get_ip()
except ConnectionError:
# If you get here, it means you were unable to reach the ipify service,
# most likely because of a network error on your end.
except ServiceError:
# If you get here, it means ipify is having issues, so the request
# couldn't be completed :(
except:
# Something else happened (non-ipify related). Maybe you hit CTRL-C
# while the program was running, the kernel is killing your process, or
# something else all together.
如果您想简化上述错误处理,也可以这样做(它会捕获任何类型的ipify相关错误,无论它们是什么类型)
from ipify import get_ip
from ipify.exceptions import IpifyException
try:
ip = get_ip()
except IpifyException:
# If you get here, then some ipify exception occurred.
except:
# If you get here, some non-ipify related exception occurred.
需要注意的一点:无论您如何决定处理异常,ipify库在引发异常之前都会重试任何失败的请求3次——所以如果您需要处理异常,请记住已经尝试了重试逻辑。
贡献
这个项目之所以能够实现,归功于那些为它付出努力的出色贡献者!
如果您想改进这个库,请向我发送拉取请求!我很乐意审查并合并拉取请求。
标准的贡献工作流程应大致如下
在Github上分叉此项目。
在master分支中做一些更改(此项目很简单,所以没有必要使事情复杂化)。
准备好后发送拉取请求。
此外,如果您正在做更改,请为您的更改编写测试用例——本项目有一个完整的测试套件,您可以轻松修改/测试。
要运行测试套件,可以使用以下命令
$ pip install -e .
$ pip install -r requirements.txt
$ python manage.py test
变更日志
按降序排列的所有库更改。
版本1.0.0
发布于2015年5月6日。
首次发布!
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
ipify-1.0.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9941659b9a89a09478b491ec355446b97b8dec1770e317dd56b4c26bbab50840 |
|
MD5 | ee9260258d72fd6e85f78de96e5818d7 |
|
BLAKE2b-256 | 2e184fbcf738517e3d21cd79f4e822c588491a9b09e3c639bf50c4ceadfa80b0 |
ipify-1.0.0-py2.py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e0d486997e484adbf49008a22b4b5370f675320100ab1af4aaba7e3070fb5d35 |
|
MD5 | 4b60638caaef9f4179b7b2fc773a4838 |
|
BLAKE2b-256 | 6ef0eeeea218faaef1cd4db0ef7578ec43be1c9ea4e56fc2df797d4b0df8e2e7 |