Publié le 17/12/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Detecter le systeme d'exploitation a partir du User Agent

Lors d'une requête HTTP, des données sont automatiquement transmises au serveur web. En PHP, la variable $_SERVER['HTTP_USER_AGENT'] contient le type de navigateur et le système d'exploitation du navigateur internet.

Parser le User Agent

La class ParseUserAgent est un exemple pour extraire le système d'exploitation à partir de la variable User Agent.
<?php
 
class ParseUserAgent {
    /**
     * Principaux Système d'exploitation
     * @var array
     */
    private static $patternList=array(
            "Win16"=>"Windows 3.11",
            "(Windows 95)|(Win95)|(Windows_95)"=>"Windows 95",
            "(Windows 98)|(Win98)"=>"Windows 98",
            "(Windows NT 5.0)|(Windows 2000)"=>"Windows 2000",
            "(Windows NT 5.1)|(Windows XP)"=>"Windows XP",
            "(Windows NT 5.2)"=>"Windows Server 2003",
            "(Windows NT 6.0)"=>"Windows Vista",
            "(Windows NT 7.0)"=>"Windows Seven",
            "(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)"=>"Windows NT 4.0",
            "OpenBSD"=>"Open BSD",
            "Ubuntu"=>"Linux Ubuntu",
            "(Linux)|(X11)"=>"Linux",
            "Googlebot"=>"Crawler Google"
    );
 
/**
 * Extraire l'OS
 * @param string $useragent
 * @return string Nom du système d'exploitation
 */
    public static function getOSName($useragent) {
        $osName='unknown';
 
    /** Si useragent n'est pas renseigné,détecter à partir du navigateur */
        if (!isset($useragent)||strlen($useragent)<5) {
            if (isset($_SERVER['HTTP_USER_AGENT'])) {
                $useragent= $_SERVER['HTTP_USER_AGENT'];
            } else {
                $useragent='';
            }
        }
        /** Tester tous les couples pattern=>nom d'OS **/
        foreach(self::$patternList as $pattern=>$name) {
            if (eregi($pattern,$useragent)) {
                $osName=$name;
                break;
            }
        }
       return $osName;
    }
}
?>

Exemple d'OS à partir du User Agent

Détecter le système d'exploitation d'un visiteur

<?php
echo "Le systeme d'exploitation de l'internaute est: ".ParseUserAgent::getOSName('');
?>
affiche par exemple
Le systeme d'exploitation de l'internaute est: Windows Seven

Détecter le crawler de Google

<?php
$ua='Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
echo 'UserAgent correspond a :'.ParseUserAgent::getOSName($ua);
?>
 
résultat de l'ua
L'OS de l'UserAgent est :Crawler Google

La class ParseUserAgent est un exemple d'extraction du système d'exploitation à partir du UserAgent. Bien sur, les données peuvent être affinées et améliorées. Le but est de montrer la quantité d'information disponible dans l'UserAgent envoyé par le navigateur internet.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - class
Mise a jour
17/12/2010
Visualisation
vu 3997 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Mohamed dans java

Merci beaucoup j'ai eu un probleme de redimensionnement des images , mes images perdaient leur qualite, ta solution m'a aide pour ca mercii

Publié par foufou0406 dans CMS

merci !!!

Publié par need help dans java

Merci pour cet exemple.
Est ce possible de récupérer le flux video d'une camera ou bien une appareil photo branché par USB.

Merci d'avance.

Publié par Marmz dans java

Super ! pile ce que je cherchais , merci Mr Fobec

Publié par habib dans CMS

je veu cree des applications base de donnee comme gestion park reforme du materielle les unites materielle entree sortie inventaire aidez moi email bettaharhabib1966@yahoo.fr <br>tel 0557187557...