Logotipo de Zephyrnet

Cómo rastrear la ubicación de una dirección IP usando Python

Fecha:

Cómo rastrear la ubicación de una dirección IP usando Python
Imagen del autor
 

Usaremos una biblioteca de python llamada ip2geotools que le permite determinar la ubicación física de una dirección IP. Esto puede determinar el país, la región, la ciudad, la latitud y la longitud de una dirección IP.

Admite direcciones IPv4 e IPv6 y puede manejar direcciones IP únicas y listas de direcciones IP. Pero es importante tener en cuenta que la biblioteca no es precisa el 100 % del tiempo, y la precisión de los resultados dependerá de la fuente de datos utilizada y la calidad de los datos. Sin embargo, se usa mucho y la comunidad está activa, por lo que la biblioteca se actualiza regularmente.

En esta sección, analizaremos el código Python para extraer la ubicación de una dirección IP o una URL.

1. Importación de las bibliotecas necesarias

$ pip install ip2geotools

 

import socket
import requests
from ip2geotools.databases.noncommercial import DbIpCity
from geopy.distance import distance

 

La siguiente función se utiliza para imprimir los detalles de la línea de dirección IP Ciudad, País, Coordenadas, etc.

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})")

 

2. Obtener la ubicación de una dirección IP

ip_add = input("Enter IP: ") # 198.35.26.96
printDetails(ip_add)

 

Salida:

IP Address: 198.35.26.96
Location: San Jose, California, US
Coordinates: (Lat: 37.3361663, Lng: -121.890591)

 

3. Obtener la ubicación de una URL

url = input("Enter URL: ") # www.youtube.com
ip_add = socket.gethostbyname(url)
printDetails(ip_add)

 

Salida:

Enter the URL: www.youtube.com
IP Address: 173.194.214.91
Location: Mountain View, California, US
Coordinates: (Lat: 37.3893889, Lng: -122.0832101)

 

Aquí discutimos algunos de sus casos de uso, como bloquear las direcciones IP de algunos países específicos o calcular la distancia entre las dos direcciones IP, etc.

1. Bloquee ciertas direcciones IP según su ubicación

El siguiente código busca la ubicación de una dirección IP y luego verifica si el país de esa ubicación está en la lista de países bloqueados o no.

Enter the URL: www.youtube.com
IP Address: 173.194.214.91
Location: Mountain View, California, US
Coordinates: (Lat: 37.3893889, Lng: -122.0832101)

 

Salida:

Enter the IP Address: 198.35.26.96
IP Address: 198.35.26.96 is allowed

 

También puede modificar ese código para permitir direcciones IP de un país específico.

2. Calcular la distancia entre dos direcciones IP

El siguiente código calculará la distancia (en km) entre las dos ubicaciones de direcciones IP.

def calculate_distance(ip1, ip2): res1 = DbIpCity.get(ip1) res2 = DbIpCity.get(ip2) lat1, lon1 = res1.latitude, res1.longitude lat2, lon2 = res2.latitude, res2.longitude return distance((lat1, lon1), (lat2, lon2)).km # Input two IP addresses
ip_add_1 = input("1st IP: ") # 198.35.26.96
ip_add_2 = input("2nd IP: ") # 220.158.144.59
dist = calculate_distance(ip_add_1, ip_add_2)
print(f"Distance between them is {str(dist)}km")

 

Salida:

Enter 1st IP Address: 198.35.26.96
Enter 2nd IP Address: 220.158.144.59
Distance between them is 12790.62320788363km

 

3. Calcule la distancia entre su ubicación actual y el servidor

El siguiente código calculará la distancia (en km) entre su ubicación actual y la ubicación de la dirección IP dada.

def get_distance_from_location(ip, lat, lon): res = DbIpCity.get(ip) ip_lat, ip_lon = res.latitude, res.longitude return distance((ip_lat, ip_lon), (lat, lon)).km server_ip = input("Server's IP: ")
lat = float(input("Your Latitude: "))
lng = float(input("Your Longitude: ")) dist = get_distance_from_location(server_ip, lat, lng)
print(f"Distance between the server and your location is {str(dist)}km")

 

Salida:

Enter your server's IP Address: 208.80.152.201
Enter your current location (Latitude): 26.4710
Enter your current location (Longitude): 73.1134
Distance between the server and your location is 12183.275099919923km

 

Hay varios beneficios de rastrear la ubicación de una dirección IP, como que las empresas pueden ofrecer publicidad dirigida a los usuarios en función de su ubicación. Esto puede conducir a campañas de marketing más efectivas, tasas de conversión más altas y la personalización de la experiencia del usuario.

Además, puede ser beneficioso en la detección de fraudes, como bloquear direcciones IP de algunos países específicos, también validar direcciones IP para asegurarse de que estén formateadas correctamente.

En conclusión, espero que hayas disfrutado este artículo y lo hayas encontrado informativo. Puedes encontrar el archivo colaborativo del código completo. Si tiene alguna sugerencia o comentario, comuníquese conmigo a través de LinkedIn.

Que tengas un buen día 😀.

 
 
Garg ario es un B.Tech. Estudiante de Ingeniería Eléctrica, actualmente en el último año de la carrera. Su interés radica en el campo del Desarrollo Web y el Aprendizaje Automático. Ha perseguido este interés y estoy ansioso por trabajar más en estas direcciones.
 

punto_img

Información más reciente

punto_img