import requests class GeoipPlugin: """Plugin para obtener información de geolocalización de una IP o dominio.""" def run(self, sender, *args): """Ejecuta la consulta de GeoIP.""" if not args: return "️Uso: `.geoip ` (Ejemplo: `.geoip 8.8.8.8`)" ip_o_dominio = args[0] return self.obtener_geoip(ip_o_dominio) def obtener_geoip(self, ip_o_dominio: str) -> str: """Consulta la geolocalización de una IP o dominio.""" try: response = requests.get(f"https://ipwhois.app/json/{ip_o_dominio}", timeout=5) data = response.json() if "error" in data: return f"️Error: {data.get('reason', 'No se pudo obtener información de geolocalización.')}" ciudad = data.get("city", "Desconocida") region = data.get("region", "Desconocida") pais = data.get("country_name", "Desconocido") latitud = data.get("latitude", "N/A") longitud = data.get("longitude", "N/A") isp = data.get("org", "Desconocida") return (f" **GeoIP de {ip_o_dominio}:**\n" f"- Ubicación: {ciudad}, {region}, {pais}\n" f"- ISP: {isp}\n" f"- Coordenadas: {latitud}, {longitud}") except requests.RequestException as e: return f" Error de conexión: {str(e)}" def help(self): """Muestra la ayuda para el comando .geoip""" return " Uso: `.geoip ` - Obtiene información de geolocalización."