Bootlegger
Waifu Strategist
LEVEL 1
400 XP
Link:
Aquí te doy un ejemplo utilizando `requests` para hacer una solicitud HTTP y un servicio como `ipinfo.io` para obtener la IP y la ubicación.
1. Instalar la biblioteca `requests` si no la tienes instalada:
```bash
pip install requests
```
### Código en Python:
```python
import requests
from urllib.parse import urlparse
def obtener_ip_y_ubicacion(url):
try:
# Extraer el dominio de la URL
dominio = urlparse(url).netloc
# Consultar el servicio de ipinfo.io
response = requests.get(f'https://ipinfo.io/{dominio}/json')
if response.status_code == 200:
data = response.json()
ip = data.get('ip', 'No disponible')
ciudad = data.get('city', 'No disponible')
region = data.get('region', 'No disponible')
pais = data.get('country', 'No disponible')
loc = data.get('loc', 'No disponible')
print(f"Dominio: {dominio}")
print(f"IP: {ip}")
print(f"Ciudad: {ciudad}")
print(f"Región: {region}")
print(f"País: {pais}")
print(f"Ubicación (coordenadas): {loc}")
else:
print("No se pudo obtener información de la IP.")
except Exception as e:
print(f"Ocurrió un error: {e}")
# Solicitar al usuario la URL
url = input("Introduce la URL: ")
obtener_ip_y_ubicacion(url)
```
### Explicación del código:
1. **Extraer el dominio**: Usamos `urlparse` para obtener solo el dominio de la URL proporcionada.
2. **Consultar ipinfo.io**: Realizamos una solicitud GET a `ipinfo.io`, pasando el dominio en lugar de una IP específica. Este servicio devuelve información sobre la ubicación geográfica asociada con esa IP.
3. **Mostrar la información**: El servicio responde con datos JSON que incluyen la IP, la ciudad, la región, el país y las coordenadas geográficas.
### Ejemplo de uso:
Si ejecutas el programa y introduces una URL como `https://www.google.com`, el código te proporcionará la IP asociada a Google y la ubicación geográfica correspondiente.
### Nota:
Este código depende de un servicio gratuito (como `ipinfo.io`), por lo que si realizas demasiadas solicitudes en un corto período, podrías encontrar limitaciones de uso. Para uso extensivo, necesitarías obtener una clave de API o usar otro servicio similar.
Aquí te doy un ejemplo utilizando `requests` para hacer una solicitud HTTP y un servicio como `ipinfo.io` para obtener la IP y la ubicación.
1. Instalar la biblioteca `requests` si no la tienes instalada:
```bash
pip install requests
```
### Código en Python:
```python
import requests
from urllib.parse import urlparse
def obtener_ip_y_ubicacion(url):
try:
# Extraer el dominio de la URL
dominio = urlparse(url).netloc
# Consultar el servicio de ipinfo.io
response = requests.get(f'https://ipinfo.io/{dominio}/json')
if response.status_code == 200:
data = response.json()
ip = data.get('ip', 'No disponible')
ciudad = data.get('city', 'No disponible')
region = data.get('region', 'No disponible')
pais = data.get('country', 'No disponible')
loc = data.get('loc', 'No disponible')
print(f"Dominio: {dominio}")
print(f"IP: {ip}")
print(f"Ciudad: {ciudad}")
print(f"Región: {region}")
print(f"País: {pais}")
print(f"Ubicación (coordenadas): {loc}")
else:
print("No se pudo obtener información de la IP.")
except Exception as e:
print(f"Ocurrió un error: {e}")
# Solicitar al usuario la URL
url = input("Introduce la URL: ")
obtener_ip_y_ubicacion(url)
```
### Explicación del código:
1. **Extraer el dominio**: Usamos `urlparse` para obtener solo el dominio de la URL proporcionada.
2. **Consultar ipinfo.io**: Realizamos una solicitud GET a `ipinfo.io`, pasando el dominio en lugar de una IP específica. Este servicio devuelve información sobre la ubicación geográfica asociada con esa IP.
3. **Mostrar la información**: El servicio responde con datos JSON que incluyen la IP, la ciudad, la región, el país y las coordenadas geográficas.
### Ejemplo de uso:
Si ejecutas el programa y introduces una URL como `https://www.google.com`, el código te proporcionará la IP asociada a Google y la ubicación geográfica correspondiente.
### Nota:
Este código depende de un servicio gratuito (como `ipinfo.io`), por lo que si realizas demasiadas solicitudes en un corto período, podrías encontrar limitaciones de uso. Para uso extensivo, necesitarías obtener una clave de API o usar otro servicio similar.