Detectar IP con PHP

Cuando creamos aplicaciones Web, sea el frontend o backend, tenemos un tiempo para las pruebas, en ese periodo solo algunos usuarios deberían acceder a la Web para poner aprueba el funcionamiento.

Una manera de poder realizar este filtro es dando acceso solo a un conjunto de IP, las cuales serán de los desarrolladores, diseñadores, entre otros.

Para saber cual es la verdadera IP del usuario que esta accediendo a la Web esta función nos la dará:

function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

Luego debemos crear una función para que filtre la IP que no tienen permiso de ver la Web:

function restringirIp($ips)
{
    $ips = array( "200.11.22.33", "201.12.13.14");

    $ipReal = getRealIpAddr();

    if (in_array($ipreal,$ips))
    {
        return true;

    }else{

        header('location: http://google.com'); exit;
    }
}

restringirIp(array( "200.11.22.33", "201.12.13.14"));

Descargar

También te puede interesar

4 Comments

  1. shakaran
    sep 28, 2009 @ 19:13:45

    Ahora entiendo porque no veía tus post en tu blog. Te gusta perder visitantes porque no se muestre tu publicidad y pones un javacript que genere un css .ads:not(body) {} para bloquear el contenido de AdBlock.

    Estas en tu pleno derecho porque es tu casa y son tus normas, pero me parece retrógado totalmente hacer algo así. Con estas medidas lo único que fomentaras es perder muchos usuarios porque no entiendan el porque no se muestra en la página(y si en el feed) o bien se busquen triquiñuelas con greasemonkey como yo para evitar precisamente estos comportamientos. Si tambien te da por bloquear greasemonkey, apúntate el firebug a la lista y webscrappers con php si es necesario. Hecha la ley, echa la trampa.

    Por cierto, muy buen post.

    • craftyman
      sep 28, 2009 @ 21:02:24

      Hola Shakaran,

      Me sorprende de verdad tu comentario, no pretendo ocultar mis post de ninguna manera, seria ilógico porque lo que quiero es que los vean todos por igual.

      pones un javacript que genere un css .ads:not(body)
      Desconozco totalmente de esto, yo utilizo como proveedor de publicidad a Adsense y recientemente puse un bloque de adbrite.

      La verdad pensé que esto de los post se había solucionado con el cambio de Hosting pero veo que no, gracias por tus comentarios, estaré trabajando en esto para no perder mas visitantes en mi blog.

      Saludos.

  2. Anime Online
    ago 16, 2010 @ 22:49:36

    Muy buen aporte gracias

  3. christian
    dic 28, 2010 @ 10:57:29

    Hola si lo que quiero es hacer lo inverso?
    es decir lo que quiero es bloquear todas la ips menos 1, para que esta si tenga acceso.