Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getClientInfo($user_agent = '') {
- if (!$user_agent) {
- $user_agent = $_SERVER['HTTP_USER_AGENT'];
- }
- $res = false;
- $browser_name = array(
- 'Avant Browser' => 'avant',
- 'Opera' => 'opera',
- 'Opera Mini' => 'opera-mini',
- 'Phoenix' => 'ff',
- 'Firebird' => 'ff',
- 'Firefox' => 'ff',
- 'GranParadiso' => 'ff',
- 'Shiretoko' => 'ff',
- 'Netscape' => 'netscape',
- 'Konqueror' => 'konqueror',
- 'amaya' => 'amaya',
- 'America Online Browser' => 'aol',
- 'Camino' => 'camino',
- 'ELinks' => 'elinks',
- 'Epiphany' => 'epiphany',
- 'Flock' => 'flock',
- 'Chrome' => 'chrome',
- 'Iceweasel' => 'iceweasel',
- 'IceCat' => 'icecat',
- 'iCab' => 'icab',
- 'K-Meleon' => 'k-meleon',
- 'Links' => 'links',
- 'Lynx' => 'lynx',
- 'Minimo' => 'minimo',
- 'OffByOne' => 'offbyone',
- 'OmniWeb' => 'omniweb',
- 'SeaMonkey' => 'seamonkey',
- 'Shiira' => 'shiira',
- 'Windows CE' => 'ie-mobile',
- 'Microsoft Internet Explorer' => 'ie',
- 'MSIE' => 'ie',
- 'Safari' => 'safari'
- );
- $browser_vers = array(
- 'Microsoft Internet Explorer' => '/Microsoft Internet Explorer[\/]([a-z0-9.+-]*)/i',
- 'Phoenix' => '/Phoenix[\/]([a-z0-9.+-]*)/i',
- 'Firebird' => '/Firebird[\/]([a-z0-9.+-]*)/i',
- 'Firefox' => '/Firefox[\/]([a-z0-9.+-]*)/i',
- 'GranParadiso' => '/GranParadiso[\/]([a-z0-9.+-]*)/i',
- 'Shiretoko' => '/Shiretoko[\/]([a-z0-9.+-]*)/i',
- 'Konqueror' => '/Konqueror[\/]([a-z0-9.+-]*)/i',
- 'amaya' => '/Amaya[\/]([a-z0-9.+-]*)/i',
- 'Camino' => '/Camino[\/]([a-z0-9.+-]*)/i',
- 'Epiphany' => '/Epiphany[\/]([a-z0-9.+-]*)/i',
- 'Flock' => '/Flock[\/]([a-z0-9.+-]*)/i',
- 'Chrome' => '/Chrome[\/]([a-z0-9.+-]*)/i',
- 'Iceweasel' => '/Iceweasel[\/]([a-z0-9.+-]*)/i',
- 'IceCat' => '/IceCat[\/]([a-z0-9.+-]*)/i',
- 'K-Meleon' => '/K-Meleon[\/]([a-z0-9.+-]*)/i',
- 'Lynx' => '/Lynx[\/]([a-z0-9.+-]*)/i',
- 'Minimo' => '/Minimo[\/]([a-z0-9.+-]*)/i',
- 'OmniWeb' => '/OmniWeb[\/]([a-z0-9.+-]*)/i',
- 'SeaMonkey' => '/SeaMonkey[\/]([a-z0-9.+-]*)/i',
- 'Shiira' => '/Shiira[\/]([a-z0-9.+-]*)/i',
- 'Safari' => '/Shiira[\/]([a-z0-9.+-]*)/i',
- 'ELinks' => '/ELinks \(([a-z0-9.+-]*)[;]/i',
- 'Links' => '/Links \(([a-z0-9.+-]*)[;]/i',
- 'MSIE' => '/MSIE[\s]([0-9.+-]*)[;]/i',
- 'America Online Browser' => '/America Online Browser[\s]([a-z0-9.+-]*)/i',
- 'iCab' => '/iCab[\s]([0-9.+-]*)[;]/i',
- 'Opera' => '/Opera[\/\s]([a-z0-9.+-]*)/i',
- 'Netscape' => '/Netscape[6]?[\/]([a-z0-9.+-]*)/i',
- 'Windows CE' => '',
- 'OffByOne' => '',
- 'Avant Browser' => '',
- 'Unknow' => ''
- );
- $os_name = array(
- 'Windows' => 'win',
- 'Macintosh' => 'mac',
- 'Mac OS' => 'mac',
- 'Mac_PowerPC' => 'mac',
- 'Ubuntu' => 'linux ubuntu',
- 'Linux' => 'linux',
- 'SunOS' => 'unix sunos',
- 'FreeBSD' => 'unix freebsd',
- 'w3m' => 'unix freebsd',
- 'J2ME/MIDP' => 'java',
- 'iPhone' => 'iphone',
- 'iPad' => 'ipad',
- 'Symbian OS' => 'symbian'
- );
- $os_vers = array(
- 'Windows' => '/Windows[\s]([a-z0-9.+-\s]*)[;)]/i',
- 'Macintosh' => '',
- 'Mac OS' => '',
- 'Mac_PowerPC' => '',
- 'Ubuntu' => '/Ubuntu[\/\s]([a-z0-9.+-\s]*)/i',
- 'Linux' => '',
- 'SunOS' => '',
- 'FreeBSD' => '',
- 'w3m' => '',
- 'J2ME/MIDP' => '',
- 'iPhone' => '',
- 'Symbian OS' => ''
- );
- // Сначало нужно узнать браузер!
- foreach ($browser_name as $key => $value) {
- $pos = strpos($user_agent, $key);
- if ($pos !== false) {
- $res['browser_key'] = $key;
- $res['browser_name'] = $value;
- break;
- }
- }
- if (!$res['browser_key']) {
- $res['browser_key'] = 'Unknow';
- $res['browser_name'] = 'Unknow';
- }
- $pattern = $browser_vers[$res['browser_key']];
- if ($pattern) {
- if (preg_match($pattern, $user_agent, $match)) {
- $res['browser_version'] = $match[1];
- } else {
- $res['browser_version'] = '';
- }
- } else {
- $res['browser_version'] = '';
- }
- // Теперь ОСЬ
- foreach ($os_name as $key => $value) {
- $pos = strpos($user_agent, $key);
- if ($pos !== false) {
- $res['os_key'] = $key;
- $res['os_name'] = $value;
- break;
- }
- }
- if (!$res['os_key']) {
- $res['os_key'] = 'Unknow';
- $res['os_name'] = 'Unknow';
- }
- $pattern = $os_vers[$res['os_key']];
- if ($pattern) {
- if (preg_match($pattern, $user_agent, $match)) {
- $res['os_version'] = $match[1];
- if ($res['os_key'] == 'Windows') {
- switch ($res['os_version']) {
- case 'NT 5.0': $res['os_version'] = '2000'; break;
- case 'NT 5.1': $res['os_version'] = 'xp'; break;
- case 'NT 5.2': $res['os_version'] = 'xp64'; break;
- case 'NT 6.0': $res['os_version'] = 'vista'; break;
- case 'NT 6.1': $res['os_version'] = '7'; break;
- case 'NT 2000': $res['os_version'] = '2000'; break;
- }
- }
- } else {
- $res['os_version'] = '';
- }
- } else {
- $res['os_version'] = '';
- }
- if (isset($res['os_key'])) unset($res['os_key']);
- if (isset($res['browser_key'])) unset($res['browser_key']);
- $res['os'] = $res['os_name'].$res['os_version'];
- $res['browser'] = $res['browser_name'].$res['browser_version'];
- return $res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement