- 104
- 28
Админил я как то на сервере и заметил что тулс определяет расстояние между ip адресами, решил это реализовать в python. Есть библиотека которая определяет расстояние между координатами если че
Можно реализовать подобное (с моего гита) -
code:
import requests
from math import *
def distance(Lat1, Lat2, Lon1, Lon2):
Lon1 = radians(Lon1)
Lon2 = radians(Lon2)
Lat1 = radians(Lat1)
Lat2 = radians(Lat2)
DLon = Lon2 - Lon1 # магия тригонометрии
DLat = Lat2 - Lat1 # магия тригонометрии
P = sin(DLat / 2) ** 2 + cos(Lat1) * cos(Lat2) * sin(DLon / 2) ** 2 # магия тригонометрии
Q = 2 * asin(sqrt(P)) # магия тригонометрии
R = 6371 # радиус земли
return (Q * R)
ip1 = input('Введите IP(1): ')
ip2 = input('Введите IP(2): ')
r = requests.get(f"http://ip-api.com/json/{ip1}")
data = r.json()
Lat1 = data['lat']
Lon1 = data['lon']
r2 = requests.get(f"http://ip-api.com/json/{ip2}")
data2 = r2.json()
Lat2 = data2['lat']
Lon2 = data2['lon']
result = round(distance(Lat1, Lat2, Lon1, Lon2))
print(f'Расстояние: {result} км') # результат