欢迎访问宙启技术站
智能推送

使用Python的GeocoderIP插件实现IP地址的地理信息查询

发布时间:2023-12-13 05:57:41

Python的GeocoderIP是一个用于查询IP地址地理信息的插件,可以根据给定的IP地址获取相关的地理位置信息,包括国家、城市、经纬度等。

首先,我们需要安装GeocoderIP插件。可以使用pip命令来安装:

pip install geocoder

安装完成后,我们可以使用以下代码来查询IP地址的地理信息:

import geocoder

def get_location(ip_address):
    g = geocoder.ip(ip_address)
    return g

# 查询IP地址的地理信息
ip_address = '8.8.8.8'
location = get_location(ip_address)
print(location.country)
print(location.city)
print(location.latlng)

在上面的代码中,我们首先导入geocoder模块。然后,定义了一个get_location函数,该函数接收一个IP地址作为参数,并返回该IP地址的地理位置信息。

接下来,我们调用geocoder.ip函数,传入指定的IP地址进行查询。查询结果将返回一个geocoder.location.Location对象,包含了查询到的地理位置信息。

然后,我们可以通过访问location对象的属性,获取具体的地理信息。例如,location.country属性可以获取到查询到的国家信息,location.city属性可以获取到城市信息,location.latlng属性可以获取到经纬度信息。

在上述代码中,我们以查询IP地址为8.8.8.8的地理信息为例进行演示。你也可以替换成其他IP地址进行查询。

当然,我们也可以进行批量查询IP地址的地理信息。下面是一个示例代码:

import geocoder

def get_locations(ip_addresses):
    locations = []
    for ip_address in ip_addresses:
        g = geocoder.ip(ip_address)
        locations.append(g)
    return locations

# 批量查询IP地址的地理信息
ip_addresses = ['8.8.8.8', '1.1.1.1', '123.123.123.123']
locations = get_locations(ip_addresses)
for location in locations:
    print(location.country)
    print(location.city)
    print(location.latlng)
    print('---')

在上面的代码中,我们定义了一个get_locations函数,该函数接收一个IP地址列表作为参数,并返回一个包含查询到的地理位置信息的列表。

然后,我们使用一个循环来遍历IP地址列表,调用geocoder.ip函数进行查询,并将查询结果追加到locations列表中。

最后,我们遍历locations列表,访问每个地理位置对象的属性,获取具体的地理信息。

上述代码使用了一个包含了三个IP地址的列表进行演示。你可以根据需要替换成其他IP地址列表进行查询。

总之,使用Python的GeocoderIP插件可以方便地查询IP地址的地理信息。你可以根据需要进行单个或批量查询,获取到所需的地理信息。