Como executar uma pesquisa em IP Geolocation no Express.js
Se você estiver criando um site (ou API) usando o Express.js, geralmente é útil saber de onde seus visitantes estão vindo: dos EUA, da UE ou de outro lugar? O processo de localização de um usuário da Web é normalmente chamado de IP geolocation e, infelizmente, não é simples.
O motivo pelo qual não é fácil obter dados de IP geolocation é que não há um mapeamento padrão de IPs -> dados de localização. A maioria das empresas obtém esses dados comprando-os de agregadores de IP Geolocation que reúnem várias informações diferentes para criar um banco de dados preciso de dados de IP geolocation .
Os dados do IP Geolocation são normalmente compostos por:
- Dados WHOIS
- Registros regionais de Internet
- Feeds BGP (de provedores de serviços de Internet)
- Informações de latência coletadas manualmente
Em resumo: é basicamente impossível obter dados do IP geolocation sem passar por um agregador do IP Geolocation .
Hoje, vou orientá-lo a usar a biblioteca de desenvolvedor express-simple-geoip incrivelmente simples criada por mim, que facilita muito a realização de pesquisas em IP Geolocation no Express.js.
Criar uma conta de pesquisa da IP Geolocation API
A primeira coisa que você precisa fazer para usar a biblioteca express-simple-geoip é criar uma conta gratuita da IP Geolocation API: https://ip-geolocation.whoisxmlapi.com/signup.
IP Geolocation API é uma um dos maiores, mais econômicos e mais baratos provedores de IP Geolocation . Você pode usar o serviço da IP Geolocation API para realizar 1.000 consultas gratuitas ao IP Geolocation a cada mês, ou pode pagar uma taxa fixa de US$ 27 por mês para 100.000 consultas. Planos de tarifas extras disponíveis aqui.
Depois de criar e fazer login na sua conta da IP Geolocation API , você precisará visualizar a página de produtos de sua conta e copiar sua chave de API - você precisará dela mais tarde para fazer consultas ao IP Geolocation .
Instalar o pacote express-simple-geoip
Agora que sua conta está configurada, a próxima coisa que você precisa fazer é instalar a biblioteca express-simple-geoip do NPM. Na linha de comando execute o seguinte comando:
$ npm install express-simple-geoip
Isso fará o download e instalará a versão mais recente do pacote express-simple-geoip do NPM.
Executar um IP Geolocation Lookup usando express-simple-geoip
Agora que você tem uma conta e o pacote express-simple-geoip instalados, vamos dar uma olhada em alguns códigos que você pode executar para procurar o endereço físico de qualquer endereço IP que desejar.
Aqui está um aplicativo Express.js simples que contém apenas um único endpoint, `/test`, que retorna uma resposta simples de hello world:
"use strict";
const express = require("express");
const IpGeolocation = require("express-simple-geoip");
let app = express();
app.use(IpGeolocation("<your-api-key-here>"));
app.get("/test", (req, res) => {
res.json({ hello: "world" });
});
app.listen(3000);
Se você colocar esse código em um arquivo `server.js` e executá-lo, deverá ver uma resposta hello world quando visitar o endpoint `/test` em seu navegador.
A linha `app.use` inicializa o middleware IpGeolocation para que toda vez que uma nova solicitação chegar ao seu servidor Express.js, uma pesquisa de geolocalização de IP será realizada e um novo objeto `req.geoip`será adicionado à solicitação.
Para acessar os dados do IP Geolocation em seu código, basta fazer referência ao objeto `req.geoip` da seguinte forma assim:
"use strict";
const express = require("express");
const IpGeolocation = require("express-simple-geoip");
let app = express();
app.use(IpGeolocation("<your-api-key-here>"));
app.get("/test", (req, res) => {
res.json({ hello: "world", geoip: req.geoip });
});
app.listen(3000);
Se você executar esse novo servidor e acessar o URL `/test` em seu navegador, deverá ver uma nova resposta que se parece com esta:
{
"hello": "world",
"geoip": {
"country": "US",
"region": "California",
"city": "Mountain View",
"lat": 37.40599,
"lng": -122.078514,
"postalCode": "94043",
"timezone": "-08:00"
}
}
Como você pode ver, o objeto de dados `req.geoip` contém todos os dados do dados IP Geolocation do solicitante! Muito legal, não é? O objeto `req.geoip` contém tudo o que você precisa saber sobre a localização física do solicitante.
Como usar os dados do site IP Geolocation
Agora que você já viu como é simples fazer com que a funcionalidade de pesquisa do IP Geolocation funcione em seus aplicativos Express.js, aqui estão algumas ideias de como você pode usar os dados do IP Geolocation em seus projetos e serviços:
- Detectar o país de um usuário quando ele visitar seu site e fornecer uma experiência personalizada para ele (alterar o idioma da página, exibir determinados anúncios, tipos de moeda etc.)
- Bloqueie a visita de usuários de determinados locais ao seu site. Digamos que você esteja criando um serviço de streaming de vídeo como o YouTube e só tem o direito de exibir determinados vídeos para usuários nos EUA. Nesse caso, ter dados do IP Geolocation poderia ajudá-lo a detectar a localização de um usuário para que você filtrar qualquer usuário que não seja dos EUA.
- Reduzir fraudes e riscos. Se você notar um grande volume de tráfego mal-intencionado proveniente de um país específico, bloquear temporariamente os visitantes desse local pode ser uma maneira rápida de evitar fraudes e outros problemas.
Encerrar o express-simple-geoip
A realização de pesquisas em IP Geolocation pode ser complicada, mas o express-simple-geoip em conjunto com o IP Geolocation torna isso simples e barato. Ao usar a nova biblioteca express-simple-geoip, você pode facilmente criar e gerenciar pesquisas em IP Geolocation até mesmo para os maiores sites corporativos.
Para saber mais, consulte a biblioteca express-simple-geoip no GitHub, onde você pode encontrar todos os e informações mais detalhadas: https://github.com/whois-api-llc/express-simple-geoip
Se tiver alguma dúvida, envie um e-mail para nós!