Foros del Web » Programando para Internet » PHP »

Detectar el SO del visitante

Estas en el tema de Detectar el SO del visitante en el foro de PHP en Foros del Web. He visto que con la variable super global $_SERVER, usando el índice HTTP_USER_AGENT, el servidor me devuelve información sobre mi SO, en concreto: Cita: Mozilla/5.0 ...
  #1 (permalink)  
Antiguo 12/06/2011, 16:16
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 14 años
Puntos: 11
Detectar el SO del visitante

He visto que con la variable super global $_SERVER, usando el índice HTTP_USER_AGENT, el servidor me devuelve información sobre mi SO, en concreto:

Cita:
Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
También veo que se puede usar la función get_browser, pero en php.net el ejemplo que hay, me devuelve un Warning:

Cita:
Warning: get_browser() [function.get-browser]: browscap ini directive not set in /opt/lampp/htdocs/www/prueba.php on line 4
Aparece una aclaración de que hay que añadir un archivo llamado browscap.ini, pero me parece mucho lio ¿Por qué no usar $_SERVER['HTTP_USER_AGENT'] en lugar de get_browser()?
  #2 (permalink)  
Antiguo 12/06/2011, 16:51
Avatar de diegovazgonz  
Fecha de Ingreso: octubre-2010
Ubicación: Ourense
Mensajes: 184
Antigüedad: 14 años, 2 meses
Puntos: 11
Respuesta: Detectar el SO del visitante

por que algunas veces esta directiva se encuentra bloqueda, y la otra no, recomiendo $_SERVER['HTTP_USER_AGENT']
  #3 (permalink)  
Antiguo 12/06/2011, 17:48
Avatar de Gambinoh  
Fecha de Ingreso: diciembre-2010
Mensajes: 348
Antigüedad: 14 años
Puntos: 11
Respuesta: Detectar el SO del visitante

Bueno, a ver que os parece... de momento tengo esto:

Código PHP:
Ver original
  1. <?php
  2. $pajar = $_SERVER['HTTP_USER_AGENT'];
  3. $aguja = 'Linux';
  4. $busqueda = strpos($pajar, $aguja);
  5.  
  6. if ($busqueda === false) {
  7.     echo "El SO del visitante NO es Linux";
  8. } else {
  9.     echo "El SO del visitante es Linux";
  10. }
  11. ?>

Pienso que de momento esto debería de funcionar, pero estoy abierto a sugerencias.

diegovazgonz ¿cuál de las dos directivas dices que está bloqueada?

P.S. La finalidad es cargar una hoja de estilo u otra segun el OS...
  #4 (permalink)  
Antiguo 13/06/2011, 14:14
Avatar de diegovazgonz  
Fecha de Ingreso: octubre-2010
Ubicación: Ourense
Mensajes: 184
Antigüedad: 14 años, 2 meses
Puntos: 11
Respuesta: Detectar el SO del visitante

get_browser
  #5 (permalink)  
Antiguo 13/06/2011, 15:49
Avatar de Deathmetalrules  
Fecha de Ingreso: diciembre-2010
Ubicación: Mas - aya
Mensajes: 65
Antigüedad: 14 años
Puntos: 8
Respuesta: Detectar el SO del visitante

este te permite saber el tipo de explorador y s.o

Código PHP:
<?php
function agente($explorador
{
$agente $_SERVER['HTTP_USER_AGENT'];
return 
strstr($agente$explorador);
}
function 
so($opersys) {
$oper $_SERVER['HTTP_USER_AGENT'];
return 
strstr($oper$opersys);
}
if(
agente('Firefox') != FALSE) {
    echo
" <i> Estas usando: Mozilla Firefox browser</i> <br />";
          if(
so('Windows') != FALSE) {
 echo 
"<i>Tienes sistema operativo:Windows</i> <br />";
    }
      elseif(
so('Linux') != FALSE) {
    echo
"<i>Tienes sistema operativo: Linux</i> <br/>";
    }
      elseif(
so('MAC') != FALSE) {
    echo 
"<i>Tienes sistema operativo: MAC OSX</i> <br />";
    }
      else {
 echo
"<i>Tienes sistema operativo: Sistema operativo desconocido <br />\n";
    }
}
else if(
agente('America Online Browser') != FALSE) {
    echo 
"<i>Estas usando: AOL browser</i> <br />\n";
    echo 
"<i>Tienes sistema operativo: Windows</i> <br />\n";
}
else if(
agente('Iceweasel') != FALSE) {
    echo 
"Estas usando <i>Iceweasel</i> <br />\n";
    echo 
"<i>Tienes sistema operativo:Linux</i> <br />\n";
}
else if(
agente('Opera') != FALSE) {
    echo 
"<i>Estas usando: Opera browser</i> <br />\n";
         if(
so('Windows') != FALSE) {
    echo 
"<i>Tienes sistema operativo:Windows</i> <br />\n";
    }
      elseif(
so('Linux') != FALSE) {
    echo 
"<i>Tienes sistema operativo:Linux</i> <br />\n";
    }
      elseif(
so('MAC') != FALSE) {
    echo 
"<i>Tienes sistema operativo:MAC OSX</i> <br />\n";
    }
      else {
    echo 
"<i>Tienes sistema operativo:Sistema operativo desconocido <br />\n";
    }
}
else if(
agente('Safari') != FALSE) {
    echo 
"<i>Estas usando:Safari browser</i> <br />\n";
    echo
"<i>Tienes sistema operativo:Linux</i> <br />\n";
}
else if(
agente('MSIE') != FALSE) {
    echo 
"<i>Estas usando: Internet Explorer</i> <br />";
    echo
"<i>Tienes sistema operativo:Windows</i> <br />";
}
else {
echo 
"User Agent desconcido. <br />\n";
if(
so('Windows') != FALSE) {
    echo 
"<i>Tienes sistema operativo:Windows</i> <br />";
    }
      elseif(
so('Linux') != FALSE) {
    echo 
"<i>Tienes sistema operativo:Linux</i> <br />";
    }
      elseif(
so('MAC') != FALSE) {
    echo 
"<i>Tienes sistema operativo:MAC OSX</i> <br />";
    }
else {
    echo 
"<i>Tienes sistema operativo:Sistema operativo desconocido<br />\n</h4>";
    
    }

}

?>
__________________
Un nuevo horizonte

Etiquetas: visitante
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:00.