![...](assets/img/articles/main/Python-1210x642.jpg)
¿Sabías que Python es capaz de obtener la ubicación de cualquier persona en el mundo con solo saber su número de teléfono? En este ejercicio, veremos como esto es posible. Este tutorial es solo con fines educativos y de entretenimiento.
¿Sabías que Python es capaz de obtener la ubicación de cualquier persona en el mundo con solo saber su número de teléfono? En este ejercicio, veremos como esto es posible. Este tutorial es solo con fines educativos y de entretenimiento.
Las librerías geocoder
, and carrier
de la librería phonenumbers
deben ser importadas. Estas librerías nos ayudarán con el propósito de este ejercicio. ¡Comencemos!
#Importing libraries
import phonenumbers
from phonenumbers import geocoder
from phonenumbers import carrier
#Introducing the phone number to be tracked
number = '+51 XXXXXXXXX'
phone_number = phonenumbers.parse(number)
carrier = carrier.name_for_number(phone_number, 'es')
region = geocoder.description_for_number(phone_number,'es')
#Printing results
print(carrier)
print(phone_number)
Si ejecutamos este código, obtendremos lo siguiente:
![](assets/img/articles/tutorial/python/phone_number_tracking/6252e245af633-output1.png)
![](assets/img/articles/tutorial/python/phone_number_tracking/6252e245af633-output2.png)
Como se puede apreciar en las imágenes, Python puede generar el nombre de la región en cualquier idioma. Si quieres, por ejemplo, en inglés, escribes 'en' en lugar de 'es', o 'de' para alemán, o 'ru' para ruso. El resultado de la variable carrier
es el nombre de la compañía de teléfono que provee el dado número de teléfono.
Python también puede indicar en el mapa la ubicación del número de teléfono dado. ¿Cómo hacerlo? Como sabrás, cualquier ubicación se puede definir de acuerdo a sus coordenadas de latitud y longitud. Si vas a Google Maps y haces click en cuaquier cuidad, se mostrarán las coordenadas de latitud y longitud de este lugar en específico.
Sin embargo, si solo introduce estas coordenadas en Python, no lo entenderá. Entonces, ¿cuál es la solución? Para esto, es necesario obtener un código de clave API que convertirá las coordenadas en un lugar. Podemos obtener el código API creando una cuenta gratuita en OpenCage. Aquí está el enlace: https://opencagedata.com/
En Python, hay una biblioteca llamada opencage.geocoder
. Como se explicó, esta biblioteca y la clave API se utilizarán para ayudar a Python a convertir las coordenadas de latitud y longitud en el lugar correspondiente
#Importing library
from opencage.geocoder import OpenCageGeocode
#Introducing the API key
key = 'XXXXXXXXXXXXXXXXXXXXXXXX'
geocoder = OpenCageGeocode(key)
query = str(region)
results = geocoder.geocode(query)
print(results)
#Obtaining the latitude and longitude coordinates
lat = results[0]['geometry']['lat']
lng = results[0]['geometry']['lng']
#Printing the variables lat
and lng
print(lat, lng)
Acabas de obtener las coordenadas de latitud y longitud. Si los copias en Google Maps, ¡podrás ver la ubicación! Pero, también puedes 'crear' tu propio mapa de una manera particular en Python. Para ello, se necesita la libraría folium
. Esta librería hace posible la visualización de las coordenadas en un mapa interactivo.
#Importing library
import folium
#Creating the map with the given coordinates
my_map = folium.Map(location=[lat,lng], zoom_start = 5)
#Pointing out on the map the place
folium.Marker([lat,lng], popup = region).add_to((my_map))
Ahora es el momento de guardar el mapa en un archivo html. Esto es muy sencillo de hacer.
#Saving the map in a html file
my_map.save('Location.html')
En la carpeta en la que has guardado tu código de Python, encontrarás un nuevo archivo, el html. Si haces click en él podrás ver el lugar indicado en el mapa, como se muestra a continuación.
![](assets/img/articles/tutorial/python/phone_number_tracking/6252e245af633-results.png)
![](assets/img/articles/tutorial/python/phone_number_tracking/6252e245af633-map.png)
El código final se verá así:
#Importing libraries
import phonenumbers
from phonenumbers import geocoder
from phonenumbers import carrier
from opencage.geocoder import OpenCageGeocode
import folium
#Introducing the phone number to be tracked
number = '+51 XXXXXXXXX'
phone_number = phonenumbers.parse(number)
carrier = carrier.name_for_number(phone_number, 'es')
region = geocoder.description_for_number(phone_number,'es')
#Printing results
print(carrier)
print(phone_number)
#Introducing the API key
key = 'XXXXXXXXXXXXXXXXXXXXXXXX'
geocoder = OpenCageGeocode(key)
query = str(region)
results = geocoder.geocode(query)
print(results)
#Obtaining the latitude and longitude coordinates
lat = results[0]['geometry']['lat']
lng = results[0]['geometry']['lng']
#Printing the variables lat
and lng
print(lat, lng)
#Creating the map with the given coordinates
my_map = folium.Map(location=[lat,lng], zoom_start = 5)
#Pointing out on the map the place
folium.Marker([lat,lng], popup = region).add_to((my_map))
#Saving the map in a html file
my_map.save('Location.html')
Importante:
1. Cuando ingreses el número de teléfono deseado, no olvides el código del país. ¡Es muy importante!
2. Debido a razones de política y seguridad de las empresas, la ubicación obtenida al ejecutar el código de Python no es precisa.
Vistas: 1
Notificaciones
Recibe los nuevos artículos en tu correo electrónico