Implementação da Geolocalização IP em PHP Usando a Instalação PECL

Geolocalização é uma característica importante para um site, pois permite que negócios online forneçam conteúdo direcionado a usuários potenciais com base em sua localização geográfica. Ao usar dados de geolocalização, o proprietário do site pode fornecer conteúdo localizado, como notícias locais, previsão do tempo e eventos, e exibir o conteúdo na língua nativa. Também pode ajudar a prevenir fraudes, permitindo que as empresas detectem e bloqueiem atividades suspeitas originadas de certas regiões geográficas. É uma ferramenta importante para os proprietários e desenvolvedores de sites para melhorar a experiência do usuário e prevenir fraudes.

A geolocalização pode ser implementada de várias maneiras, como na camada do servidor web, na camada da linguagem de programação ou por meio do uso de um SDK. Em nosso artigo anterior, demonstramos como instalar geolocalização no servidor Apache. Neste artigo, explorarei outra abordagem instalando geolocalização no PHP usando a instalação PECL. Para esta demonstração, estaremos usando o IP2Location, o mesmo provedor de geolocalização, para que você possa entender como a geolocalização funciona em diferentes ambientes.

Visão Geral do IP2Location

O IP2Location é um banco de dados que contém informações sobre endereços IP e suas localizações associadas. O banco de dados contém uma gama de informações, incluindo país, região, cidade, latitude, longitude, fuso horário, código postal, código de área, informações móveis, tipo de uso e muito mais do endereço IP.

Para usar o IP2Location, você precisa obter uma cópia do banco de dados e carregá-lo em seu aplicativo. Uma vez que o banco de dados é carregado, você pode usá-lo para geolocalizar endereços IP e recuperar informações sobre suas localizações associadas.

Nota: Versões diferentes dos bancos de dados têm granularidades diferentes das informações de localização. Você deve obter o correto para sua implementação.

Visão Geral da Instalação PECL

O PECL (PHP Extension Community Library) é um repositório de PHP extensões que permitem adicionar funcionalidades extras ao seu aplicativo PHP. A extensão IP2Location é uma das extensões disponíveis no PECL, e permite que você use o IP2Location em seu aplicativo PHP.

Para usar a extensão IP2Location, você precisará instalá-la no seu servidor usando o PECL. Uma vez instalada, você pode usá-la em seu código PHP para geolocalizar endereços IP e recuperar informações sobre suas localizações associadas. Neste tutorial, vou assumir que você já tem o Apache e o PHP instalados, e está familiarizado com o Debian 11.

Guia Passo a Passo para Implementar Geolocalização de IP em PHP Usando PECL

Passo 1: Instalar PECL

O primeiro passo para implementar o IP2Location em PHP é instalar o PECL. Para instalar o PECL, você precisará ter os cabeçalhos e ferramentas de desenvolvimento do PHP instalados em seu sistema. Você pode instalar esses usando o seu gerenciador de pacotes se ainda não os configurou. Por exemplo, no Ubuntu ou Debian, você pode executar o seguinte comando:

  • sudo apt-get install php-dev php-pear

Passo 2: Instalar a Biblioteca C da IP2Location 

Você precisa da Biblioteca C da IP2Location para compilar o módulo PHP. Para isso, basta executar o seguinte comando:

  • sudo apt-get install git

Isso instalará o comando git. Em seguida, execute o comando abaixo para clonar o projeto IP2Location do github:

  • sudo git clone https://github.com/chrislim2888/IP2Location-C-Library

Então, dentro da pasta do projeto, execute o seguinte comando:

 

autoreconf -i -v --force
./configure
make
make install

O comando acima instalará a Biblioteca C da IP2Location. 

Passo 3: Instalar a Extensão IP2Location 

Agora que você tem o PECL instalado, pode instalar a extensão IP2Location. Para fazer isso, basta executar o seguinte comando:

  • sudo pecl install ip2location

Isso baixará e instalará a extensão IP2Location para o PHP.

Passo 4: Configurar o PHP para usar a Extensão IP2Location 

Agora que você tem a extensão IP2Location instalada, você precisa configurar o PHP para usá-la. Para isso, você precisará adicionar uma linha ao seu arquivo php.ini.

Para encontrar seu arquivo php.ini, você pode executar o seguinte comando:

  • php -i | grep php.ini

Isso irá fornecer o caminho para o seu arquivo php.ini. Uma vez que você tenha o caminho, poderá abrir o arquivo no editor de texto de sua preferência.

Em seguida, adicione a seguinte linha ao seu arquivo php.ini:

  • extension=ip2location.so

Isso instruirá o PHP a carregar a extensão IP2Location.

Passo 5: Reiniciar o Apache

Você precisa reiniciar o servidor Apache para atualizar a lista de módulos do PHP. Para fazer isso, execute o comando abaixo:

  • sudo service apache2 restart

Em seguida, você pode inserir o seguinte comando para verificar se o módulo IP2Location foi instalado e carregado com sucesso:

  • php -m | grep ip2location

Você deve perceber o IP2location após executar o comando acima.

Passo 6: Baixar o Banco de Dados IP2Location 

Antes de poder usar o IP2Location para identificar a localização de um endereço IP, você precisará baixar o banco de dados IP2Location. Este banco de dados contém informações sobre a localização geográfica de cada endereço IP.

Você pode baixar o banco de dados gratuito no site IP2Location LITE. Existem várias versões de bancos de dados disponíveis, então certifique-se de escolher a que seja adequada para suas necessidades.

Passo 7: Escrever Seu Código PHP

Agora que você instalou a extensão IP2Location e baixou o banco de dados, está pronto para começar a usar o IP2Location em seu código PHP. Aqui está um exemplo:

PHP

 

// Carregar o banco de dados
ip2location_open('path/to/database.bin');

Depois de carregar o banco de dados, você pode usar a classe IP2Location para identificar a localização de um endereço IP. Aqui está um exemplo:

PHP

 

// Imprimir informações de localização
echo 'Country code: ' . ip2location_get_country_short(‘8.8.8.8’) . “\n”';
echo 'Country name: ' . ip2location_get_country_long(‘8.8.8.8’) . “\n”;

Você verá o resultado abaixo:

Vantagens e Desvantagens de Instalar PECL para Geolocalização

O PHP PECL é relativamente fácil de instalar em comparação com módulos do Apache, pois requer apenas a instalação dos cabeçalhos de desenvolvimento PHP necessários e ferramentas. E, é mais flexível, pois não está vinculado a nenhum servidor web específico, pode ser usado em qualquer plataforma que suporte PHP.

No entanto, existem desvantagens em usar essa solução. Para usar o PHP PECL, você precisa ter algum conhecimento de PHP, o comando Linux e os fundamentos do processo de construção de pacotes. O PHP PECL pode não ter o mesmo desempenho de um módulo do Apache para sites de alto tráfego, pois adiciona uma camada adicional de processamento ao PHP.

Conclusão

É importante avaliar cuidadosamente os prós e contras de cada abordagem de implementação de geolocalização para determinar qual delas melhor se adapta às suas necessidades específicas. Fatores como seu nível de expertise técnica, plataforma de servidor e requisitos de desempenho devem ser considerados ao tomar uma decisão.

Source:
https://dzone.com/articles/implementing-ip-geolocation-in-php-using-the-pecl-install