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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 351 fois - Téléchargée 18 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
michael33512 Messages postés 3 Date d'inscription samedi 24 juillet 2010 Statut Membre Dernière intervention 14 mai 2014
15 janv. 2013 à 19:06
j'aie remplacer ereg par preg_match
yuki24 Messages postés 8 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 19 avril 2009
19 avril 2009 à 00:36
Petite MAJ Today :)
SoldierZ Messages postés 12 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 4 mai 2009
9 avril 2009 à 18:58
nice x)
yuki24 Messages postés 8 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 19 avril 2009
5 déc. 2007 à 11:38
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.
xpmen Messages postés 9 Date d'inscription samedi 12 novembre 2005 Statut Membre Dernière intervention 11 janvier 2009
5 déc. 2007 à 10:01
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.