Script para comprobar IP pública

Script para comprobar IP pública con Python

¿Qué es una IP pública?

Una IP pública es la dirección única que identifica a tu red en Internet. A diferencia de las IPs privadas, que son utilizadas en redes internas, las IPs públicas son accesibles desde cualquier parte del mundo. Conocer tu IP pública es útil para:

  • Configurar acceso remoto a servidores.
  • Realizar pruebas de ping y traceroute.
  • Diagnosticar problemas de conectividad.

Preparación del entorno para el script

Antes de comenzar, asegúrate de tener Python instalado en tu sistema, así como la biblioteca requests, que utilizaremos para obtener la IP pública. Si no has instalado Python, puedes seguir esta guía sobre cómo instalar Python en tu sistema.

Instalación de la biblioteca requests

Para instalar la biblioteca requests, utiliza pip, el gestor de paquetes de Python. Abre tu terminal y ejecuta el siguiente comando:

pip install requests

Creación del script

Una vez tengas todos los requisitos instalados, es hora de crear el script. Abre tu editor de código favorito y crea un nuevo archivo llamado comprobar_ip.py. A continuación, inserta el siguiente código:

import requests

def obtener_ip_publica():
    try:
        respuesta = requests.get("https://api.ipify.org?format=json")
        respuesta.raise_for_status()  # Lanza un error si la respuesta no es exitosa
        ip = respuesta.json()["ip"]
        return ip
    except requests.exceptions.RequestException as e:
        print(f"Ocurrió un error al obtener la IP: {e}")
        return None

if __name__ == "__main__":
    ip_publica = obtener_ip_publica()
    if ip_publica:
        print(f"Tu IP pública es: {ip_publica}")

Explicación del código

Vamos a desglosar el código para entender cómo funciona:

  • import requests: Importamos la biblioteca requests para hacer peticiones HTTP.
  • def obtener_ip_publica():: Definimos una función que se encargará de consultar la IP pública.
  • respuesta = requests.get(...): Hacemos una petición GET a la API de ipify, que devuelve la IP pública en formato JSON.
  • return ip: Devolvemos la IP pública extraída del JSON.
  • El bloque if __name__ == "__main__": asegura que el script se ejecute solo si se ejecuta directamente, no al importarlo como módulo.

Ejecutando el script

Para ejecutar el script, simplemente abre tu terminal, navega hasta el directorio donde guardaste comprobar_ip.py y ejecuta el siguiente comando:

python comprobar_ip.py

Deberías ver un mensaje que imprime tu IP pública en la consola.

Extensiones del script

Puedes modificar el script para que realice tareas adicionales, como guardar la IP en un archivo o enviarla a un correo. Aquí tienes dos ejemplos de cómo puedes ampliar su funcionalidad:

Guardar IP en un archivo

A continuación, es un ejemplo que guarda la IP pública en un archivo llamado ip_publica.txt:

with open("ip_publica.txt", "w") as archivo:
    archivo.write(f"Tu IP pública es: {ip_publica}\n")

Enviar IP a un correo electrónico

Puedes utilizar la biblioteca smtplib de Python para enviar un correo con la IP pública. Sin embargo, necesitarás configurar un servidor SMTP y credenciales. Este es solo un ejemplo de cómo se implementaría:

import smtplib
from email.mime.text import MIMEText

def enviar_correo(ip):
    msg = MIMEText(f"Tu IP pública es: {ip}")
    msg['Subject'] = 'Tu IP Pública'
    msg['From'] = 'tu_email@example.com'
    msg['To'] = 'destinatario@example.com'

    with smtplib.SMTP('smtp.example.com', 587) as servidor:
        servidor.starttls()
        servidor.login('tu_email@example.com', 'tu_contraseña')
        servidor.send_message(msg)

Conclusiones

Crear un script para comprobar tu IP pública es una tarea sencilla que puede resultar muy útil. A través de este tutorial, has aprendido a utilizar Python y requests para consultar una API y extraer información valiosa. Desde aquí, puedes expandir este script para que realice diferentes funciones que se ajusten a tus necesidades específicas.

Fuentes y lecturas recomendadas

Xose de la Paz

Más de 20 años transformando pasión en profesión. Experto en desarrollo Full Stack con una visión integral que abarca desde la gestión de servidores y redes hasta el diseño de interfaz. Soy un "todoterreno" tecnológico que cree en el aprendizaje continuo y la visión global de los proyectos. Entre despliegue y despliegue, me pierdo por el mundo con mi cámara al hombro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies