diff options
-rw-r--r-- | system/helpers/user_agent_helper.php | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/system/helpers/user_agent_helper.php b/system/helpers/user_agent_helper.php new file mode 100644 index 000000000..3c6085e77 --- /dev/null +++ b/system/helpers/user_agent_helper.php @@ -0,0 +1,89 @@ +<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); +/** + * Code Igniter + * + * An open source application development framework for PHP 4.3.2 or newer + * + * @package CodeIgniter + * @author Rick Ellis + * @copyright Copyright (c) 2006, pMachine, Inc. + * @license http://www.codeignitor.com/user_guide/license.html + * @link http://www.codeigniter.com + * @since Version 1.0 + * @filesource + */ + +// ------------------------------------------------------------------------ + +/** + * Code Igniter User Agent Helper + * + * @package CodeIgniter + * @subpackage Helpers + * @category Helpers + * @author Rick Ellis + * @link http://www.codeigniter.com/user_guide/helpers/array_helper.html + */ + +// ------------------------------------------------------------------------ + +/** + * Get the OS of the user currently browsing the site + * + * @access public + * @return string + */ +function get_OS() +{ + if ( ! isset($_SERVER['HTTP_USER_AGENT'])) + { + return 'Unknown OS'; + } + + $os = array ( + 'windows nt 6.0' => 'Windows Longhorn', + 'windows nt 5.2' => 'Windows 2003', + 'windows nt 5.0' => 'Windows 2000', + 'windows nt 5.1' => 'Windows XP', + 'windows nt 4.0' => 'Windows NT 4.0', + 'winnt4.0' => 'Windows NT 4.0', + 'winnt 4.0' => 'Windows NT', + 'winnt' => 'Windows NT', + 'windows 98' => 'Windows 98', + 'win98' => 'Windows 98', + 'windows 95' => 'Windows 95', + 'win95' => 'Windows 95', + 'windows' => 'Unknown Windows OS', + 'mac os x' => 'Mac OS X', + 'freebsd' => 'FreeBSD', + 'ppc' => 'Macintosh', + 'sunos' => 'Sun Solaris', + 'linux' => 'Linux', + 'debian' => 'Debian', + 'beos' => 'BeOS', + 'apachebench' => 'ApacheBench', + 'aix' => 'AIX', + 'irix' => 'Irix', + 'osf' => 'DEC OSF', + 'hp-ux' => 'HP-UX', + 'netbsd' => 'NetBSD', + 'bsdi' => 'BSDi', + 'openbsd' => 'OpenBSD', + 'gnu' => 'GNU/Linux', + 'unix' => 'Unknown Unix OS' + ); + + + foreach ($os as $key => $val) + { + if (preg_match("|$key|i", $_SERVER['HTTP_USER_AGENT'])) + { + return $val; + } + } + + return 'Unknown OS'; +} + + +?>
\ No newline at end of file |