如何使用Python获取IP地址信息

如何使用Python获取IP地址信息

如何使用Python获取IP地址信息

  有时您需要知道 IP 地址的位置,无论它是您自己的还是您正在使用的站点的位置。

  一个用例是当您想将登录信息发送给您网站的用户时。在本文中,我们将了解如何使用 Python 找到 IP 地址的位置。

工具

  为了实现这个目标,我们将使用下面提到的两个 API:

  • ipify:这个 API 将帮助我们知道请求来自的 IP 地址。
  • ipapi:此 API 将帮助我们获取特定 IP 地址的位置信息。

  为了与这些 API 交互,将使用requests库。如果您不熟悉 API,请务必查看本教程以了解它们。pip您可以使用如下命令安装此库:

pip install requests

  推荐:常用的50个Python模块列表

获取位置信息

如何使用Python获取IP地址信息
如何使用Python获取IP地址信息

  正如我们所讨论的,我们将首先从第一个 API 中获取我们的 IP 地址。然后我们将使用这个 IP 地址来获取这个特定 IP 地址的位置信息。所以,我们将有两个功能:

import requests


def get_ip():
    response = requests.get('https://api64.ipify.org?format=json').json()
    return response["ip"]


def get_location():
    ip_address = get_ip()
    response = requests.get(f'https://ipapi.co/{ip_address}/json/').json()
    location_data = {
        "ip": ip_address,
        "city": response.get("city"),
        "region": response.get("region"),
        "country": response.get("country_name")
    }
    return location_data


print(get_location())

  推荐:Jupyter Notebook教程

get_ip()功能

  根据 ipify 的API 文档,我们需要发出GET请求https://api.ipify.org?format=json以获取如下所示的 JSON 响应:

get_ip()功能
如何使用Python获取IP地址信息
{"ip": "117.214.109.137"}

  我们将此响应存储在一个response变量中,该变量只不过是一种具有一个键值对的Python 字典。所以我们将键的值ip作为response[“ip”].

  推荐:Python main()函数

get_location()功能

  根据 ipapi 的API 文档,我们需要发出GET请求https://ipapi.co/{ip}/{format}/ 以获取特定 IP 地址的位置信息。{ip}替换为 IP 地址,并且{format}可以替换为以下中的任何一个 – json, jsonp, xml, csv, yaml.

get_location()功能
如何使用Python获取IP地址信息

  该函数在内部调用该get_ip()函数以获取 IP 地址,然后对带有 IP 地址的 URL 发出GET请求。此 API 返回如下所示的 JSON 响应:

{'ip': '113.88.104.19', 'city': 'Shenzhen', 'region': 'Guangdong', 'country': 'China'}

  我们在响应中获得了大量数据。你可以使用任何适合你的东西。对于本教程,我们将只使用 city,region和country. 这就是为什么我们创建了一个字典location_data,并在其中存储了所有数据并返回相同的数据。

  推荐:如何使用Python提取MAC地址

总结

  以上是晓得博客为你介绍的如何使用Python获取IP地址信息的全部内容,在本文中,我们了解了如何与 Web 服务交互以获取特定 IP 地址的位置信息,希望对你的Python编程有所帮助。

  推荐:零基础如何开始学习Python

5/5 - (1 vote)

晓得博客,版权所有丨如未注明,均为原创
晓得博客 » 如何使用Python获取IP地址信息

转载请保留链接:https://www.pythonthree.com/get-location-information-using-python/

Claude、Netflix、Midjourney、Chatgpt Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折

Chatgpt-Plus注册购买共享账号
Kinsta-free-hosting主机
Kinsta-free-hosting主机
Elementor可视化创建WordPress网站
Elementor可视化创建WordPress网站
滚动至顶部