Caminho no Gestor bibliotecas/ip.php
Duas funções: ip_get() descobre o IP do visitante e ip_check() valida um endereço. O IP devolvido alimenta os limites por IP do login, do cadastro, dos formulários e do OAuth2 (acessos-*, formularios-* em variáveis globais).
Não vem carregada: peça ip no JSON do módulo ou use gestor_incluir_biblioteca('ip'). As bibliotecas autenticacao, usuario, formulario e oauth2 já a usam.
ip_get($allow_private = false)
Na ordem:
-
Com
SERVER_NAMEigual alocalhost, devolveREMOTE_ADDRdireto (ambiente local). -
Se
REMOTE_ADDRé um IP público válido, devolve-o. Cabeçalhos de proxy são ignorados. -
Senão (a requisição veio de um proxy na rede privada, como um Nginx ou um contêiner), percorre
X-Forwarded-Forda direita para a esquerda e devolve o primeiro IP público válido. -
Nada encontrado:
null.
Ler a cadeia pela direita impede que o visitante forje o IP escrevendo um X-Forwarded-For próprio: o valor da direita é o que o seu proxy acrescentou.
127.0.0.1 está na lista de proxies confiáveis e nunca é devolvido pelos passos 2 e 3. A lista e o cabeçalho (HTTP_X_FORWARDED_FOR) são fixos no código.
ip_check($ip, $allow_private = false, $proxy_ip = [])
true se $ip for um IPv4 ou IPv6 válido fora das faixas reservadas (inclusive loopback) e, sem $allow_private, fora das faixas privadas (10/8, 172.16/12, 192.168/16, fc00::/7). Um IP presente em $proxy_ip é sempre false.
Funções
Gerado a partir de gestor/bibliotecas/ip.php · 2 funções
ip_check
ver no código · linha 36 ↗ip_check(string $ip, bool $allow_private = false, array $proxy_ip = []): boolValida um endereço IP.
Parâmetros
$ipstring- O endereço IP a ser validado.
$allow_privatebool- Se true, permite IPs de redes privadas como válidos. Padrão: false.
$proxy_iparray- Array de IPs de proxy confiáveis que devem ser excluídos da validação.
Retorno
ip_get
ver no código · linha 67 ↗ip_get(bool $allow_private = false): string|nullObtém o endereço IP real do cliente.
Parâmetros
$allow_privatebool- Se true, permite IPs privados como válidos. Padrão: false.
Retorno