找回密码
 立即注册
查看: 11734|回复: 0

使用Python获取IP地址的位置信息

[复制链接]

新手上路

积分
6
发表于 2022-3-9 09:16:53 | 显示全部楼层 |阅读模式
介绍
我们经常需要知道IP地址的位置,甚至可能是我们的IP地址。另一个用例是当您要向网站的用户发送登录信息时。在这篇博客中,我们将看到如何使用Python知道IP地址的位置。
准备好您的工具
为了实现该目标,我们将使用下面提到的两个 API:
  • ipify:此 API 将帮助我们了解请求来自何处的 IP 地址。
  • ipapi:此 API 将帮助我们获取特定 IP 地址的位置信息。
为了与这些API进行交互,我们将在Python中使用库。如果您不熟悉 API,请务必查看本教程以了解它们。requests
您可以使用如下命令安装此库:pip
$ pip install requests


一旦安装了库,我们就可以开始了!
获取位置信息
正如我们所讨论的,我们将首先从第一个 API 获取我们的 IP 地址。然后,我们将使用此 IP 地址来获取此特定 IP 地址的位置信息。因此,我们将有两个函数。
在上面的代码中,我们有两个函数 - 和 .让我们分别讨论它们中的每一个。get_ip()get_location()
get_ip() 函数
根据 ipify 的 API 文档,我们需要在 https://api.ipify.org?format=json 上发出 GET 请求,以获得如下所示的 JSON 响应:
我们将此响应存储在响应变量中,该变量只不过是一种具有一个键值对的Python字典。因此,我们将键的值返回为 。ipresponse["ip"]
get_location() 函数
根据ipapi的API文档,我们需要在 https://ipapi.co/{ip}/{format}/上发出GET请求,以获取特定IP地址的位置信息。 替换为 IP 地址,并且可以替换为以下任何地址 - 、 、 、 、 。此函数在内部调用该函数以获取 IP 地址,然后在具有 IP 地址的 URL 上发出 GET 请求。此 API 返回如下所示的 JSON 响应:{ip}{format}jsonjsonpxmlcsvyamlget_ip()
我们在响应中获得了大量数据。您可以使用任何适合您的方法。在本教程中,我们将只使用 和/地区。这就是为什么我们创建了一个名为location_data的字典,并将所有数据存储在其中并返回相同的数据。cityregion

最后,我们调用该函数并打印输出。我们的输出将如下所示:get_location()
结论
在这篇博客中,我们学习了如何与 Web 服务交互以获取特定 IP 地址的位置信息

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2025-8-31 08:59 , Processed in 0.016654 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2017 Discuz Team. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表