Guia de localização IP em JavaScript
Consulte a localização de um endereço IP a partir de um navegador ou do Node.js.
Consultar um endereço IP em JavaScript
A requisição aceita um endereço IPv4 ou IPv6 e solicita JSON. Substitua o endereço do exemplo pelo que você precisa inspecionar.
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);Execute em um navegador moderno ou no Node.js com fetch e AbortSignal.timeout. As requisições do navegador identificam o endereço informado; o endpoint de IP próprio identifica a conexão do navegador.
Ler os campos de localização e rede
location.country e location.country_code identificam o país aproximado. location.city pode estar vazio ou ser impreciso. isp.asn identifica a rede, que pode ser diferente da pessoa ou empresa que utiliza o endereço.
Para obter o endereço que faz a requisição, chame https://api.ipquery.io/?format=json. Uma requisição do servidor retorna o IP com o qual ele se conecta; uma requisição do navegador retorna o endereço visível da sua conexão.
Usar o IPQuery no Dashy
O widget Public IP do Dashy oferece suporte ao IPQuery sem chave de API. Adicione esta entrada à lista widgets de uma das suas seções do Dashy:
- type: public-ip
options:
provider: ipqueryCom as configurações de proxy do Dashy desativadas, o navegador envia a requisição e o widget mostra o IP público e a localização aproximada dessa conexão. Definir useProxy: true no nível superior do widget, ou ativar appConfig.widgetsAlwaysUseProxy, envia a requisição pelo servidor do Dashy e mostra o IP público do servidor. Definir useProxy: false no nível superior do widget não substitui a configuração global do painel.
O widget utiliza o endpoint de IP próprio do IPQuery. Para inspecionar outro endereço, utilize a requisição JavaScript de um único IP apresentada acima.
Opções do widget Public IP do DashyPrecisão e segurança
A geolocalização IP é uma estimativa da localização da rede, não de um dispositivo. VPNs, proxies, redes móveis e gateways das operadoras podem situar o endereço longe do usuário. Trate os valores ausentes como desconhecidos em vez de preenchê-los com uma suposição.
Se sua aplicação lê X-Forwarded-For, confie nele apenas quando for fornecido por um proxy que você controla. Cabeçalhos enviados pelo cliente podem ser falsificados. Valide os endereços antes de realizar consultas e trate tempos limite e erros HTTP separadamente de um resultado bem-sucedido.
Referência da API