Determiner systeme d'exploitation (os) d'un visiteur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 777 fois - Téléchargée 17 fois

Contenu du snippet

Fonction permettant de determiner le systeme d'exploitation (ou OS) d'un visiteur.

la fonction admet en parametre $_SERVER['HTTP_USER_AGENT'], ou toutes autres variables qui contient un User_Agent.
(Par exemple pour un script à but statistique, l'user_agent d'un visiteur enregistré dans une bdd)
Si le parametre n'est pas defini, $_SERVER['HTTP_USER_AGENT'] sera automatiquement utilisé.

Il est forcement possible d'optimisé cette source en ajoutant par exemple de nouveaux index
(ex : 'Win98' => 'Windows 98')

Source / Exemple :


<?php
/*******************************************************

  • Fonction : getOs
  • ----------------------------------------------
  • @Desc : Retourne le nom de l'os grâce à l'user agent
  • @Param : $ua (str) : l'user agent dont on veux trouver l'os
  • @Return : (str) le nom de l'os trouvé sinon "Système d'exploitation inconnu"
  • @licence : http://opensource.org/licenses/lgpl-license.php GNU LGPL
                                                                                                                  • /
function getOS( $ua = '' ) { if( ! $ua ) $ua = $_SERVER['HTTP_USER_AGENT']; $os = 'Système d&#39;exploitation inconnu'; $os_arr = Array( // -- Windows 'Windows NT 6.1' => 'Windows Seven', 'Windows NT 6.0' => 'Windows Vista', 'Windows NT 5.2' => 'Windows Server 2003', 'Windows NT 5.1' => 'Windows XP', 'Windows NT 5.0' => 'Windows 2000', 'Windows 2000' => 'Windows 2000', 'Windows CE' => 'Windows Mobile', 'Win 9x 4.90' => 'Windows Me.', 'Windows 98' => 'Windows 98', 'Windows 95' => 'Windows 95', 'Win95' => 'Windows 95', 'Windows NT' => 'Windows NT', // -- Linux 'Ubuntu' => 'Linux Ubuntu', 'Fedora' => 'Linux Fedora', 'Linux' => 'Linux', // -- Mac 'Macintosh' => 'Mac', 'Mac OS X' => 'Mac OS X', 'Mac_PowerPC' => 'Mac OS X', // -- Autres ... 'FreeBSD' => 'FreeBSD', 'Unix' => 'Unix', 'Playstation portable' => 'PSP', 'OpenSolaris' => 'SunOS', 'SunOS' => 'SunOS', 'Nintendo Wii' => 'Nintendo Wii', 'Mac' => 'Mac', ); $ua = strtolower( $ua ); foreach( $os_arr as $k => $v ) { if( ereg( strtolower( $k ), $ua ) ) { $os = $v; break; } } return $os; } //-- Exemple d'utilisation : echo getOS( $_SERVER['HTTP_USER_AGENT'] ); ?>

A voir également

Ajouter un commentaire Commentaires
Messages postés
3
Date d'inscription
samedi 24 juillet 2010
Statut
Membre
Dernière intervention
14 mai 2014

j'aie remplacer ereg par preg_match
Messages postés
8
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
19 avril 2009

Petite MAJ Today :)
Messages postés
12
Date d'inscription
jeudi 12 février 2009
Statut
Membre
Dernière intervention
4 mai 2009

nice x)
Messages postés
8
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
19 avril 2009

Coucou747 je ne parle pas de mon code ci-dessus quand je dis optimisé, je parle du codage de ipb etc.

Si tu ne trouve personne pour t'aider a mettre en place ca Xpmen, contact moi par un mp.
J'ai pas les sources de phpbb sous les yeux donc j'sais pas vraiment comment c'est foutu niveau affichage des posts.
Messages postés
9
Date d'inscription
samedi 12 novembre 2005
Statut
Membre
Dernière intervention
11 janvier 2009

bonjour et merci yuki24
c'est un forum en phpbb2 version 20.22
Afficher les 25 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.