El firewall resuelve la IP del visitante con Detección de IP del visitante (auto, remote_addr, cf_connecting_ip, x_forwarded_for o x_real_ip). En modo Automático también usa CIDR de proxies de confianza (y rangos de Cloudflare) antes de leer cabeceras de proxy. Después, el resultado pasa por wf_sn_client_ip para que puedas ajustarlo con proxies personalizados.
Guía para usuarios: Detección de IP del visitante. Lista de proxies de confianza desde código: wf_sn_trusted_proxy_cidrs.
Firma del filtro
apply_filters( 'wf_sn_client_ip', $resolved, $source, $remote_addr );
| Parámetro | Tipo | Descripción |
|---|---|---|
$resolved | string | IP elegida por el modo de detección activo |
$source | string | Clave del modo (por ejemplo auto, x_forwarded_for) |
$remote_addr | string | REMOTE_ADDR sin procesar |
Devuelve una cadena de IP válida. Valores no válidos pueden hacer que el firewall trate al visitante como desconocido.
Ejemplo: confiar en una cabecera personalizada en un proxy interno
add_filter( 'wf_sn_client_ip', function ( $resolved, $source, $remote_addr ) {
if ( ! empty( $_SERVER['HTTP_X_SN_REAL_IP'] ) ) {
$custom = sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_SN_REAL_IP'] ) );
if ( filter_var( $custom, FILTER_VALIDATE_IP ) ) {
return $custom;
}
}
return $resolved;
}, 10, 3 );
Usa lógica de cabecera personalizada solo cuando un proxy inverso que controlas establece la cabecera. No confíes en cabeceras enviadas por el cliente en internet público.
¿No sabes cómo añadir este código? Consulta Cómo incluir código personalizado en tu sitio.