Conn2Flow
Navegação das docs

Referência / Bibliotecas

Biblioteca ip.php

Descobrir o IP do visitante (ip_get) e validar um endereço (ip_check), com o comportamento atrás de proxy reverso e de CDN.

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:

  1. Com SERVER_NAME igual a localhost, devolve REMOTE_ADDR direto (ambiente local).

  2. Se REMOTE_ADDR é um IP público válido, devolve-o. Cabeçalhos de proxy são ignorados.

  3. Senão (a requisição veio de um proxy na rede privada, como um Nginx ou um contêiner), percorre X-Forwarded-For da direita para a esquerda e devolve o primeiro IP público válido.

  4. 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

2 de 2

ip_check

ver no código · linha 36 ↗
ip_check(string $ip, bool $allow_private = false, array $proxy_ip = []): bool

Valida 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

bool
Retorna true se o IP for válido, false caso contrário.

ip_get

ver no código · linha 67 ↗
ip_get(bool $allow_private = false): string|null

Obtém o endereço IP real do cliente.

Parâmetros

$allow_privatebool
Se true, permite IPs privados como válidos. Padrão: false.

Retorno

string|null
Retorna o IP do cliente ou null se nenhum IP válido for encontrado.

Verificado contra o código no commit c267f123

Fontes:

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada