1
2 function get_os_($user_agent)
3 {
4 $oses = array (
5 'Windows 3.11' => 'Win16',
6 'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)',
7 'Windows 98' => '(Windows 98)|(Win98)',
8 'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
9 'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
10 'Windows 2003' => '(Windows NT 5.2)',
11 'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
12 'Windows ME' => 'Windows ME',
13 'Open BSD'=>'OpenBSD',
14 'Sun OS'=>'SunOS',
15 'Linux'=>'(Linux)|(X11)',
16 'Macintosh'=>'(Mac_PowerPC)|(Macintosh)',
17 'QNX'=>'QNX',
18 'BeOS'=>'BeOS',
19 'OS/2'=>'OS/2',
20 'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)'
21 );
22
23 foreach($oses as $os=>$pattern)
24 {
25 if (eregi($pattern, $user_agent))
26 return $os;
27 }
28 return 'Unknown';
29 }
For using:
1
2 print get_os_($_SERVER['HTTP_USER_AGENT']);