Guía de ubicación IP en JavaScript
Consulta la ubicación de una dirección IP desde un navegador o Node.js.
Consultar una dirección IP en JavaScript
La solicitud acepta una dirección IPv4 o IPv6 y pide JSON. Sustituye la dirección del ejemplo por la que necesitas inspeccionar.
const ip = '8.8.8.8'; // Replace with an IPv4 or IPv6 address.
const response = await fetch(
'https://api.ipquery.io/' + encodeURIComponent(ip) + '?format=json',
{ signal: AbortSignal.timeout(8000) }
);
if (!response.ok) throw new Error('IPQuery returned HTTP ' + response.status);
const data = await response.json();
if (data.ip !== ip || !data.location || !data.isp) {
throw new Error('Unexpected IPQuery response');
}
console.log(data.location.country, data.location.city, data.isp.asn);Ejecuta el ejemplo en un navegador moderno o en Node.js con fetch y AbortSignal.timeout. Las solicitudes del navegador identifican la dirección que proporcionas; el endpoint de IP propia identifica la conexión del navegador.
Leer los campos de ubicación y red
location.country y location.country_code identifican el país aproximado. location.city puede estar vacío o ser impreciso. isp.asn identifica la red, que puede ser distinta de la persona o empresa que utiliza la dirección.
Para obtener la dirección desde la que se realiza la solicitud, llama a https://api.ipquery.io/?format=json. Una solicitud desde un servidor devuelve la IP con la que ese servidor se conecta; una solicitud desde un navegador devuelve la dirección visible de su conexión.
Usar IPQuery en Dashy
El widget Public IP de Dashy admite IPQuery sin clave de API. Añade esta entrada a la lista widgets de una de tus secciones de Dashy:
- type: public-ip
options:
provider: ipqueryCon los ajustes de proxy de Dashy desactivados, el navegador envía la solicitud y el widget muestra la IP pública y la ubicación aproximada de esa conexión. Establecer useProxy: true en el nivel superior del widget, o activar appConfig.widgetsAlwaysUseProxy, envía la solicitud a través del servidor de Dashy y muestra la IP pública del servidor. Establecer useProxy: false en el nivel superior del widget no anula el ajuste global del panel.
El widget utiliza el endpoint de IP propia de IPQuery. Para inspeccionar otra dirección, utiliza la solicitud JavaScript de una sola IP que aparece arriba.
Opciones del widget Public IP de DashyPrecisión y seguridad
La geolocalización IP es una estimación de la ubicación de la red, no de un dispositivo. Las VPN, los proxies, las redes móviles y las pasarelas de los operadores pueden situar la dirección lejos del usuario. Trata los valores ausentes como desconocidos en lugar de rellenarlos con una suposición.
Si tu aplicación lee X-Forwarded-For, confía en él solo cuando lo proporcione un proxy que controles. Las cabeceras proporcionadas por el cliente pueden falsificarse. Valida las direcciones antes de realizar consultas y gestiona los tiempos de espera y los errores HTTP por separado de los resultados correctos.
Referencia de la API