borrame.com - Colección particular de recortes de código y documentación para programación web

Canales RSS

Lo más fresco

  1. Enlaces sobre desarrollo web Modificado
  2. Cadena aleatoria en PHP Modificado
  3. Recortar texto Nuevo

Sugerencias del chef

Lo más visitado

  1. Canales RSS
  2. Formato condicional según el día de la semana
  3. Enlaces sobre desarrollo web
  4. Recortar texto
  5. Convertir de minutos a horas
Compartir esta página

¿Esta IP pertenece a esta red?

Esta función nos dice si una dirección IP dada pertenece a una determinada subred. El código es válido para IPv4.

/** * Devuelve TRUE si la dirección IPv4 dada pertenece a la subred indicada, FALSE si no * * @param string $str_ip Dirección IP en formato '127.0.0.1' * @param string $str_rango Red y máscara en formato '127.0.0.0/8', '127.0.0.0/255.0.0.0' o '127.0.0.1' * @return bool * * @version 2011-08-30 */ function ip_pertenece_a_red($str_ip, $str_rango){ // Extraemos la máscara list($str_red, $str_mascara) = array_pad(explode('/', $str_rango), 2, NULL); if( is_null($str_mascara) ){ // No se especifica máscara: el rango es una única IP $mascara = 0xFFFFFFFF; }elseif( (int)$str_mascara==$str_mascara ){ // La máscara es un entero: es un número de bits $mascara = 0xFFFFFFFF << (32 - (int)$str_mascara); }else{ // La máscara está en formato x.x.x.x $mascara = ip2long($str_mascara); } $ip = ip2long($str_ip); $red = ip2long($str_red); $inf = $red & $mascara; $sup = $red | (~$mascara & 0xFFFFFFFF); return $ip>=$inf && $ip<=$sup; }

Se puede usar, por ejemplo, en un sistema de control de acceso con restricción por IP, comparando la dirección del visitante con cada rango autorizado.

Nota importante: este algoritmo no funciona correctamente en PHP de 32 bits y la función no verifica el entorno sobre el que se ejecuta.

Historial

v2011-08-30
Deshacerse del operador @ y mejorar la documentación.
v2008-11-25
Primera versión.

Esta página ha sido impresa el miércoles 12 de agosto de 2026 (16:23:49 +0200) desde https://borrame.com/recortes/php/ip-pertenece-a-red.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

Lorem ipsum dolor sit amet.

© 2005-2026 by Álvaro González (alvaro.es) • Burgos (España) • borrame.com