Login
网站首页 > 文章中心 > 其它

python实现查询IP地址所在地

作者:小编 更新时间:2023-09-29 07:25:47 浏览量:261人看过

下面我来详细讲解一下"Python实现查询IP地址所在地"的完整攻略.主要分为以下几个步骤:

我们需要一个可以提供IP地址所在地数据的第三方数据源.常见的数据源有淘宝IP地址库、纯真IP地址库等.以淘宝IP地址库为例,在 https://ip.taobao.com/ 找到"API文档",我们可以看到提供的查询API地址是:


python实现查询IP地址所在地-图1

http://ip.taobao.com/service/getIpInfo.php?ip=

我们只需要将其中的部分替换成要查询的IP地址即可得到所在地信息.

2. 获取IP地址

在Python中,我们可以通过socket模块获取当前机器的IP地址,示例代码如下:

import socket

ip = socket.gethostbyname(socket.gethostname())
print(ip)

如果要获取指定域名的IP地址,代码如下:

import socket

ip = socket.gethostbyname('www.baidu.com')
print(ip)

③ 发送HTTP请求

我们使用requests模块发送HTTP请求,并将返回的JSON数据转换为Python的字典数据类型,示例代码如下:

import requests

ip = '202.10⑧22.5'  # 要查询的IP地址
url = f'http://ip.taobao.com/service/getIpInfo.php?ip={ip}'
resp = requests.get(url)  # 发送HTTP请求
data = resp.json()  # 将返回的JSON数据转换为Python的字典数据类型
print(data)

④ 解析返回数据

我们将返回的JSON数据转换为Python的字典数据类型后,就可以根据字典中的键值获取所需的信息了:

import requests

ip = '202.10⑧22.5'  # 要查询的IP地址
url = f'http://ip.taobao.com/service/getIpInfo.php?ip={ip}'
resp = requests.get(url)  # 发送HTTP请求
data = resp.json()  # 将返回的JSON数据转换为Python的字典数据类型
province = data['data']['region']
city = data['data']['city']
isp = data['data']['isp']
print(f'{isp} {province} {city}')

这样我们就可以输出所查询的IP地址所在地的省份、城市和服务商了.以上代码,只需要将要查询的IP地址赋值给ip变量即可查询.

⑤ 示例说明

现在,我们已经掌握了查询IP地址所在地的完整攻略,我们使用前面的代码分别查询淘宝网的IP地址和百度的IP地址,示例代码如下:

import requests

# 查询淘宝网服务器的IP地址
ip = '121.4③9⑥86'
url = f'http://ip.taobao.com/service/getIpInfo.php?ip={ip}'
resp = requests.get(url)
data = resp.json()
province = data['data']['region']
city = data['data']['city']
isp = data['data']['isp']
print(f'{ip} {isp} {province} {city}')

# 查询百度的IP地址
ip = '220.181.3⑧148'
url = f'http://ip.taobao.com/service/getIpInfo.php?ip={ip}'
resp = requests.get(url)
data = resp.json()
province = data['data']['region']
city = data['data']['city']
isp = data['data']['isp']
print(f'{ip} {isp} {province} {city}')

输出结果分别为:

121.4③9⑥86 阿里云 中国 浙江杭州
220.181.3⑧148 联通 中国 北京

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章