O Peqi é posicionado entre os visitantes do seu site e o seu servidor de hospedagem e, devido a essa intermediação, o IP que aparece nos registros de rede do servidor de sua hospedagem será o IP do Peqi, e não o do visitante real.
Isso pode ser um problema para aplicações que precisam identificar corretamente o endereço IP do visitante, por exemplo, para personalizar conteúdos, gerenciar sessões de usuário ou aplicar restrições de acesso geográfico.
Para contornar essa limitação e obter o IP real do visitante, uma prática comum é utilizar o cabeçalho HTTP X-Forwarded-For (XFF). Este cabeçalho é adicionado pelo Peqi às solicitações que ele encaminha para o servidor de hospedagem, porém, é necessário que seu servidor web esteja configurado para confiar nesse header em requisições feitas de nosso servidor. Desta forma, além do X-Forwarded-For, nós também enviamos o X-Peqi-Real-Ip e X-Peqi-Forwarded-For que contém o IP real do visitante e, você pode configurar a nível de aplicação.
Para integrar essa funcionalidade, você precisará configurar sua aplicação para extrair o endereço IP do visitante a partir dos cabeçalhos X-Forwarded-For, X-Peqi-Real-Ip ou X-Peqi-Forwarded-For . Essa configuração varia dependendo da tecnologia usada, mas geralmente envolve modificar as configurações ou código do servidor para reconhecer e utilizar o IP listado neste cabeçalho como o endereço IP do visitante.
NGINX
É necessário que o módulo ngx_http_realip_module esteja habilitado e instalado no NGINX de seu servidor. Depois que você ativar o módulo citado, siga os passos abaixo:
# Defina qual header você deseja imprimir o IP real do cliente
real_ip_header X-Forwarded-For;
# Defina os IPs do Peqi como seguro para que o contexto acima seja válido
set_real_ip_from 45.33.21.140/32;
set_real_ip_from 45.33.21.46/32;
set_real_ip_from 45.33.21.223/32;
set_real_ip_from 45.79.42.243/32;
Apache 2.2
Saiba mais na documentação abaixo:
mod_rpaf
Apache 2.4
O Apache 2.4 e versões superiores geralmente vêm com o módulo mod_remoteip já instalado, você só precisa ativá-lo. No entanto, se o mod_remoteip não foi incluído na sua instalação do Apache, você pode baixá-lo diretamente aqui.
Após a instalação do módulo, será necessário adicionar as seguintes linhas ao seu arquivo de configuração. Normalmente, esse arquivo de configuração está localizado em /etc/apache/conf-available/remoteip.conf.
No entanto, se você estiver usando o cPanel/WHM, o caminho do arquivo de configuração será /etc/apache2/conf.modules.d/370_mod_remoteip.conf.
RemoteIPHeader X-FORWARDED-FOR
RemoteIPTrustedProxy 45.33.21.140/32
RemoteIPTrustedProxy 45.33.21.46/32
RemoteIPTrustedProxy 45.33.21.223/32
RemoteIPTrustedProxy 45.79.42.243/32
Wordpress
Acesse o arquivo wp-config.php e, adicione as linhas abaixo do <?php:
if ( isset( $_SERVER['HTTP_X_PEQI_REAL_IP'] ) ) {
$http_x_headers = explode( ',', $_SERVER['HTTP_X_PEQI_REAL_IP'] );
$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
}
Aplicações em PHP
if ( isset( $_SERVER['HTTP_X_PEQI_REAL_IP'] ) ) {
$http_x_headers = explode( ',', $_SERVER['HTTP_X_PEQI_REAL_IP'] );
$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
}
Wordpress
Acesse o arquivo wp-config.php e, adicione as linhas abaixo da aberta do <?php:
if ( isset( $_SERVER['HTTP_X_PEQI_REAL_IP'] ) ) {
$http_x_headers = explode( ',', $_SERVER['HTTP_X_PEQI_REAL_IP'] );
$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
}
Magento 1.x
Coloque o seguinte código no seu arquivo /app/etc/local.xml dentro do escopo <global></global>:
<remote_addr_headers>
<header1>HTTP_X_PEQI_REAL_IP</header1>
</remote_addr_headers>
Magento 2.x
Recomendamos que você utilize os métodos em nível do servidor web: Apache, NGINX, LiteSpeed.
Se isso não for possível, o seguinte artigo (use-o por sua conta e risco) pode ser útil: https://dev98.de/2017/01/02/how-to-add-alternative-http-headers-to-magento-2/
Drupal
Acesse o arquivo settings.php e, adicione as linhas:
if ( isset( $_SERVER['HTTP_X_PEQI_REAL_IP'] ) ) {
$http_x_headers = explode( ',', $_SERVER['HTTP_X_PEQI_REAL_IP'] );
$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
}
CodeIgniter
Acesse o arquivo index.phpe, adicione as linhas:
if ( isset( $_SERVER['HTTP_X_PEQI_REAL_IP'] ) ) {
$http_x_headers = explode( ',', $_SERVER['HTTP_X_PEQI_REAL_IP'] );
$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
}