Geolocalização e a Internet
Importância da Geolocalização
Diversos serviços disponibilizados na Internet, dependem da Geolocalização para definir quais conteúdos e como entregá-los em uma determinada região do Mundo. Um determinado conteúdo pode estar em um idioma, por exemplo, se acessado dos EUA e em nosso idioma se acessado do Brasil, publicidades direcionadas a um público específico de tal localidade, notícias relevantes de determinada região, entretenimento, games. Provedores de conteúdo conseguem direcionar o usuário para o sistema mais próximo dele e com isso melhorar em muito a experiência com o serviço. Ela se baseia na correlação correta entre o prefixo IP do ISP, que o usuário utiliza para acessar a Internet, e o País, Estado e Cidade onde este está sendo utilizado.
Imaginem a seguinte situação: um ISP que possui um prefixo IP, que ainda não havia sido utilizado em nenhum equipamento da sua Operação e precisou aumentar a quantidade de IPs em uma das suas caixas de CGNAT. Ele fez o deploy corretamente na caixa e passou a entregar para seus assinantes aquele novo prefixo IP. Mas em determinado momento, o cliente que passou a usar um IP daquele prefixo tentou acessar o Netflix e se viu acessando um conteúdo completamente estranho para ele e em outro idioma. Bem provavelmente isso ocorreu porque seu IP fazia parte de um prefixo IP, cuja geolocalização estava apontando para um outro País. Não parece mas isso acontece bastante e por isso as bases de dados de geolocalização precisam estar sincronizadas e com os dados certos.
Temos 4 atores nesse processo da geolocalização:
- ISPs e qualquer entidade que possua um ASN e recursos IP. Esses precisam manter a informação assertiva de localização dos seus prefixos IP.
- As entidades que prestam o serviço de geolocalização e que precisam ter esses dados atualizados e corretos. As prestadoras de serviço de geolocalização precisam receber das entidades ASNs, as informações corretas e alimentar a sua base de dados.
- As empresas que buscam e contratam os serviços de geolocalização para fazer o controle e entrega dos seus conteúdos. A estes cabe utilizar as informações coletadas das bases de dados de geolocalização e decidir qual e como entregar seus conteúdos para aquele IP solicitante.
- O cliente do ISP, que é o consumidor direto do conteúdo fornecido pelas empresas de conteúdo, mencionadas acima. Esse apenas quer ter acesso ao conteúdo correto da sua região.
Geofeed
Agora que já sabemos da importância da geolocalização em nossas vidas, vamos falar dos meios que temos para manter esse eco sistema bem atualizado. Um desses meios é usando o Geofeed ou feed de geolocalização, ele é um arquivo contendo dados no formato csv e que está definido na RFC 8805. Sua criação é bem simples onde cada linha é composta pelo prefixo IP seguido pelos dados de geolocalização dele, onde cada dado é separado por vírgula e alguns deles com padrões definidos na ISO 3166-1 alpha-2 Country Codes e ISO 3166-2 Region Codes. O Geofeed é mais necessário quando temos grandes quantidades de prefixos IP para se manterem atualizados. Vamos a um exemplo prático de um arquivo que resolvi chamar de geofeed.txt ou geofeed.csv:
# prefix,country_code,region_code,city,postal_code 192.0.2.0/24,BR,BR-RJ,Araruama, 2001:db8::/32,BR,BR-RJ,Araruama,
No exemplo acima, a primeira linha é um comentário do que seria cada dado separado pelas vírgulas. Da segunda linha em diante, o primeiro é o prefixo IP em notação CIDR, o segundo é o código do país conforme a ISO 3166-1 Alpha-2, o próximo é o código da região conforme a ISO 3166-2, o quarto campo simboliza a cidade e é texto livre UTF-8 mas não use acentuação, pois alguns serviços de geolocalização não aceitam. Exemplo: São Paulo, coloque como Sao Paulo. O último campo seria o CEP mas atualmente é considerado obsoleto e por isso finalizamos a linha com uma vírgula, indicando que não informamos o CEP.
A listagem de códigos de países pode ser encontrada facilmente fazendo uma pesquisa no Google mas aqui vai um link para ajudar. O Brasil como podemos perceber é o código BR. Os códigos de região também podem ser encontrados usando o mesmo processo de busca no Google mas aqui está um link para ajudar.
Agora que entendemos como montar nosso arquivo geofeed.txt, você pode adicionar nele todos os prefixos IP e suas localidades, um por linha e após concluir e verificar que está tudo OK, você deve hospedar ele no seu domínio, atrás do seu site por exemplo e utilizando HTTPS: https://www.seusite.com.br/geofeed.txt. Dessa forma, um serviço de geolocalização, que tenha seu link do seu geofeed.txt, conseguirá atualizar a base de dados automaticamente. Usando esse recurso, basta seu arquivo estar sempre atualizado e aguardar um tempo para que os dados tenham efeito. Um exemplo prático e público é o Geofeeds do LACNIC que pode ser baixado clicando nesse link.
Ok. Já temos nosso arquivo Geofeed pronto e hospedado em nosso site, como consigo utilizá-lo?
Contactando alguns serviços de Geolocalização para atualização dos dados
Existem muitas empresas que vendem o serviço de Geolocalização mas sem dúvida a mais conhecida é a MAXMIND e se seu prefixo IP está cadastrado errado neles, você terá grandes dores de cabeça, começando pelos grandes fornecedores de conteúdos de streaming e games. Abaixo uma lista interessante para você atualizar a sua Geolocalização.
MAXMIND
- Aceita Geofeed mas só para Operações que possuem muitas atualizações de prefixos e necessita de um controle maior sobre esses dados. Se sua Operação se enquadra nesse quesito, basta enviar um e-mail em inglês explicando a necessidade do uso do Geofeed para [email protected], informando o link de acesso do seu https://www.seusite.com.br/geofeed.txt e aguardar o contato de retorno deles. Casos pequenos como o exemplo que citei acima, não são aceitos o Geofeed e eles pedem para que usem esse link para entrada de correções. Como pode ser visto abaixo o site é bem intuitivo, basta selecionar e preencher os campos abaixo e enviar. Mas antes de solicitar qualquer correção, consulte aqui para ver se o IP já não está certo.
IPREGISTRY
- Para consultar a geolocalização de um IP basta acessar este link e fazer a consulta. Se o prefixo IP precisar ser ajustado, envie um e-mail para [email protected] com o assunto Request for Correction e no corpo do e-mail envie em inglês uma cordial apresentação e o link para o seu Geofeed, que no nosso exemplo seria: https://www.seusite.com.br/geofeed.txt
DBIP
- Esse provedor de dados de geolocalização possui interface para consulta de IP aqui e as correções podem ser enviadas por aqui. Eles aceitam de bom grado o Geofeed e você pode enviar seu link de geofeed por aqui. Após o aceite, sua atualização levará entre 24h e 48h para ser atualizada na base dados.
IP2LOCATION
- Eles são 100% adeptos ao Geofeed mas a sua atualização da base dados de geolocalização é mensal. Você pode consultar seu IP nesse link aqui e para enviar seu Geofeed para eles, necessita enviar um e-mail em inglês para [email protected] com o link do seu Geofeed. Seu arquivo estará sujeito a análise e aprovação. O IP2LOCATION possui também o método de coletar automaticamente seu Geofeed se o seu link for publicado no inetnum do seu prefixo através do WHOIS do RIR (Regional Internet Registry) conforme a RFC 9092.
Publicação Geofeed no RIR (Regional Internet Registry) via WHOIS
Existem duas maneiras para se publicar o link do Geofeed no inetnum e são elas:
- Usando o remarks exatamente conforme esse exemplo:
remarks: Geofeed https://www.seusite.com.br/geofeed.txt
Atenção! Porque a palavra Geofeed tem que existir e a escrita exatamente como no exemplo acima porque é case-sensitive.
- Usando o atributo geofeed no inetnum:
geofeed: https://www.seusite.com.br/geofeed.txt
Para o registro no ARIN existe uma pequena diferença de nomes onde o inetnum seria o NetRange e o remarks seria o Comment.
$ whois 209.212.224.1 NetRange: 209.212.224.0 - 209.212.239.255 NetName: NTTA-209-212-224 NetHandle: NET-209-212-224-0-1 NetType: Direct Allocation Organization: NTT America, Inc. (NTTAM-1) Comment: Geofeed https://geo.ip.gin.ntt.net/geofeeds/geofeeds.csv
Infelizmente nem todos os RIRs suportam a inclusão do Geofeed no inetnum do WHOIS.
Um site onde você pode testar se o seu Geofeed via WHOIS está funcionando corretamente é o Geolocate much, só ir lá e passar seu IP no teste.
IPGEOLOCATION
- Para consultar um IP basta acessar este link e para corrigir este link e informe seu link para o Geofeed.
Solicitando verificação ao Google
O Google também possui um link para informar divergência na Geolocalização de um IP. Você pode acessá-lo aqui.
ipdata
Outra base de geolocalização que pode ser consultada aqui. Para atualização basta enviar um e-mail para [email protected] com sua apresentação e seu link do seu Geofeed.
IPWHOIS.IO
Para consultar essa base acesse esse link aqui. Se encontrar algo errado, contacte eles no e-mail [email protected] e envie também seu link de Geofeed.
bigdatacloud.com
Eles tem um processo um pouco diferente, basta acessar esse link com o IP da sua rede e clicar em Share my location para iniciar o processo com eles.
WhoisXML API
Consulte o IP nesse link. Para correção envie um e-mail com o seu link do Geofeed para [email protected].
IP-API
Para consultar nessa base acesse este link. Para corrigir eles possuem um formulário aqui.
Finalizando após os contatos e atualizações
Bem, agora entra um processo de acompanhamento e espera. Isso porque esse processo não é rápido do ponto de vista das Operadoras de Geolocalização, cada uma tem seu tempo de atualização e podemos dizer que a conclusão pode levar algo em torno de 4 semanas. Enquanto isso procure ler outros artigos e colocar outras boas práticas em ação.
Referências:
https://blog.ip2location.com/knowledge-base/what-is-geofeed/