108 votes

Obtenir des informations sur le système d'exploitation

J'ai récemment commencé à m'interroger sur des sites comme http://thismachine.info/ qui récupèrent les informations sur le système d'exploitation de l'utilisateur. Je n'ai pas réussi à trouver comment faire cela avec PHP, et je voulais essayer de trouver une solution.

J'ai remarqué qu'ils listent les user-agent qui donne beaucoup d'informations sur le navigateur. Les informations sur le système d'exploitation proviennent-elles de cette source ou d'une autre ? Existe-t-il une API que je pourrais utiliser pour obtenir le système d'exploitation de l'utilisateur ?

Je vois comment ils ont obtenu le navigateur et l'IP, mais ils n'ont pas réussi à trouver le système d'exploitation !

2voto

antoni Points 1889

Si vous voulez très peu d'informations, comme une classe dans votre html pour les navigateurs courants par exemple, vous pouvez utiliser :

function get_browser()
{
    $browser = '';
    $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
    if (preg_match('~(?:msie ?|trident.+?; ?rv: ?)(\d+)~', $ua, $matches)) $browser = 'ie ie'.$matches[1];
    elseif (preg_match('~(safari|chrome|firefox)~', $ua, $matches)) $browser = $matches[1];

    return $browser;
}

qui retournera 'safari' ou 'firefox' ou 'chrome', ou 'ie ie8', 'ie ie9', 'ie ie10', 'ie ie11'.

0voto

Vous pouvez rechercher ces informations dans $_SERVER['HTTP_USER_AGENT'] mais son format est libre, son envoi n'est pas garanti et il peut facilement être modifié par l'utilisateur, que ce soit pour des raisons de confidentialité ou autres.

Si vous n'avez pas défini l'option browsecap cette directive renverra un avertissement. Pour vous assurer qu'elle est bien définie, vous pouvez récupérer sa valeur en utilisant la commande ini_get et voir si c'est réglé.

if(ini_get("browscap")) {
    $browser = get_browser(null, true);
    $browser = get_browser($_SERVER['HTTP_USER_AGENT']);  
} 

Comme kba a expliqué dans sa réponse, votre navigateur envoie beaucoup d'informations au serveur lors du chargement d'une page web. La plupart des sites web utilisent ces Agent utilisateur des informations pour déterminer le système d'exploitation du visiteur, son navigateur et diverses informations.

0voto

reza Points 1

Si vous êtes dans un LAN (Local Area Network) avec un contrôleur de domaine Active Directory, vous pouvez utiliser la méthode shell_exec() pour exécuter des commandes comme :

wmic /node:192.168.1.3 computersystem get /format:List

pour obtenir les informations du système et traiter le résultat

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X