ipify的官方客户端库:一个简单的ip地址api。
ipif的Python项目详细描述
ipify:简单IP的官方客户端库 地址api。
元
- 作者:Randall Degges
- 电子邮件:r@rdegges.com
- 地点:http://www.rdegges.com
- 状态:保持,活动
目的
ipify是 互联网。它快速,简单,可扩展,开源,资金充足(由我!)。
简而言之:如果你需要一种实用的方法来获取你的公共IP地址,ipify 是最好的选择!
这个库将从ipify的api服务中检索您的公共ip地址,并且 作为字符串返回。再简单不过了。
这个库还有其他一些您可能关心的功能:
- 如果请求因任何原因失败,则使用 最大有效性的指数退避算法。
- 这个库可以正确地处理异常,下面的使用示例向您展示 如何以万无一失的方式处理错误。
- 此库仅通过https发出api请求。
安装
要安装ipify,只需运行:
$ pip install ipify
这将自动安装库的最新版本。
用法
使用这个库非常简单。下面是一个简单的示例:
>>>fromipifyimportget_ip>>>ip=get_ip()>>>ipu'96.41.136.144'
现在,关于异常处理,有几种方法可能会失败:
- ipify服务已关闭(不太可能),或:
- 由于网络错误,您的计算机无法获取ipify请求 某种类型的(DNS,没有互联网等)。
以下是如何处理所有这些边缘情况:
fromipifyimportget_ipfromipify.exceptionsimportConnectionError,ServiceErrortry:ip=get_ip()exceptConnectionError:# If you get here, it means you were unable to reach the ipify service,# most likely because of a network error on your end.exceptServiceError:# 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相关的错误,无论 它们可以是):
fromipifyimportget_ipfromipify.exceptionsimportIpifyExceptiontry:ip=get_ip()exceptIpifyException:# If you get here, then some ipify exception occurred.except:# If you get here, some non-ipify related exception occurred.
要记住一件事:不管你决定如何处理异常, ipify库将在发出任何失败的请求之前重试3次 异常–因此,如果do需要处理异常,请记住重试 已经尝试了逻辑。
贡献
这个项目是唯一可能的,因为惊人的贡献者谁的工作!
如果你想改进这个库,请给我一个请求!我很高兴 查看和合并拉取请求。
标准贡献工作流应该如下所示:
- 在github上派生此项目。
- 在主分支中进行一些更改(此项目很简单,因此不需要 使事情复杂化。
- 准备好后发送拉取请求。
另外,如果您正在进行更改,请为您的更改编写测试–此 project有一个完整的测试套件,您可以轻松地修改/测试。
要运行测试套件,可以使用以下命令:
$ pip install -e . $ pip install -r requirements.txt $ python manage.py test
更改日志
所有库更改,按降序排列。
版本1.0.0
2015年5月6日发布。
- 第一次释放!