大家好,我是小寒
今天来介绍一个流行的 python库 ip2geotools,使用它可以确定 IP地址 对应的 国家、地区、城市、纬度和经度等。
根据 IP 地址获取位置
导入必要的库
import socket
import requests
from ip2geotools.databases.noncommercial import DbIpCity
from geopy.distance import distance
下面的函数用于打印IP地址、城市、国家、坐标等的详细信息。
def printDetails(ip):
res = DbIpCity.get(ip, api_key="free")
print(f"IP Address: {res.ip_address}")
print(f"Location: {res.city}, {res.region}, {res.country}")
print(f"Coordinates: (Lat: {res.latitude}, Lng: {res.longitude})")
从IP地址获取位置
ip_add = input("Enter IP: ") # 198.35.26.96
printDetails(ip_add)
输出:
IP Address: 198.35.26.96
Location: San Jose, California, US
Coordinates: (Lat: 37.3361663, Lng: -121.890591)
从 URL 获取位置
url = input("Enter URL: ") # www.youtube.com
ip_add = socket.gethostbyname(url)
printDetails(ip_add)
输出:
IP Address: 142.250.66.142
Location: Hong Kong, Central and Western, HK
Coordinates: (Lat: 22.2850394, Lng: 114.1583819)
一些常见的用例
在这里,我们讨论它的一些用例,
例如阻止某些特定国家/地区的 IP 地址或计算两个 IP 地址之间的距离等。
1.根据位置阻止某些 IP 地址
下面的代码查找 IP 地址的位置,然后检查该位置的国家/地区是否在被阻止国家/地区列表中。
2.计算两个IP地址之间的距离
下面的代码将计算两个 IP 地址位置之间的距离(以公里为单位)。
3.计算你当前位置和服务器之间的距离
下面的代码将计算你当前位置与给定 IP 地址位置之间的距离(以公里为单位)。
结论
跟踪 IP 地址的位置有几个好处,
例如企业可以根据用户的位置向用户投放有针对性的广告。这可以带来更有效的营销活动、更高的转化率和个性化的用户体验。
此外,它还有助于欺诈检测,例如阻止来自某些特定国家/地区的 IP 地址,还可以验证 IP 地址以确保它们的格式正确。