<?php
/* 作用:取得客户端信息 参数: 返回:指定的资料 使用: $code = new client; 1、浏览器:$str = $code->getBrowse(); 2、IP地址:$str = $code->getIP(); 3、IP地址资料:$str = $code->getIPaddres(); 4、操作系统:$str = $code->getOS(); */
class client {
function getBrowse() { $Agent = $_SERVER['HTTP_USER_AGENT']; $browser = ''; $browserver = ''; $Browser = array('Lynx', 'MOSAIC', 'AOL', 'Opera', 'JAVA', 'MacWeb', 'WebExplorer', 'OmniWeb'); for($i = 0; $i <= 7; $i ++){ if(strpos($Agent, $Browsers[$i])){ $browser = $Browsers[$i]; $browserver = ''; } } if(ereg('Mozilla', $Agent) && !ereg('MSIE', $Agent)){ $temp = explode('(', $Agent); $Part = $temp[0]; $temp = explode('/', $Part); $browserver = $temp[1]; $temp = explode(' ', $browserver); $browserver = $temp[0]; $browserver = preg_replace('/([\d\.]+)/', '\\1', $browserver); $browserver = $browserver; $browser = 'Netscape Navigator'; } if(ereg('Mozilla', $Agent) && ereg('Opera', $Agent)) { $temp = explode('(', $Agent); $Part = $temp[1]; $temp = explode(')', $Part); $browserver = $temp[1]; $temp = explode(' ', $browserver); $browserver = $temp[2]; $browserver = preg_replace('/([\d\.]+)/', '\\1', $browserver); $browserver = $browserver; $browser = 'Opera'; } if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent)){ $temp = explode('(', $Agent); $Part = $temp[1]; $temp = explode(';', $Part); $Part = $temp[1]; $temp = explode(' ', $Part); $browserver = $temp[2]; $browserver = preg_replace('/([\d\.]+)/','\\1',$browserver); $browserver = $browserver; $browser = 'Internet Explorer'; } if($browser != ''){ $browseinfo = $browser.' '.$browserver; } else { $browseinfo = false; } return $browseinfo; }
function getIP () { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } else if (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } else if (getenv('REMOTE_ADDR')) { $ip = getenv('REMOTE_ADDR'); } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; }
function getIPaddres ($ip = '') { if($ip == ''){ $ip = $this->getIP(); } if($ip == '127.0.0.1'){ return $ip_addres = '本地机器'; } $RECORDLENGTH = 17+22+13+47+12+1; $ret = ereg('^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$', $ip, $IPSection); if($ret == false){$ip_addres = 'IP地址有错';} for($i = 1; $i <= 4; $i ++){ if($IPSection[$i] > 255){ $ip_addres = 'IP地址有错'; } else { $thisip .= sprintf('%03.0f', $IPSection[$i]). (($i<4) ? '.' : ''); } } $fp= fopen($this->obj['rootDir'].'data/ip.txt', 'rb'); if($fp == NULL){ $ip_addres = 'IP记录文件打开出错'; } fseek($fp, 0, SEEK_END); $DATAFIELDBEGIN = 0xc2; $RecordCount = floor((ftell($fp)-$DATAFIELDBEGIN)/$RECORDLENGTH); if($RecordCount <= 1){ $ip_addres = 'IP记录文件打开出错'; } else { $RangB = 0; $RangE = $RecordCount; while($RangB<$RangE-1){ $RecNo = floor(($RangB+$RangE)/2); fseek($fp,$RecNo*$RECORDLENGTH+$DATAFIELDBEGIN, SEEK_SET); $buf = fread($fp, $RECORDLENGTH); if(strlen($buf) == 0){ return false; } $StartIP = (substr($buf, 0, 17)); $EndIP = trim(substr($buf, 17, 22)); $Country = trim(substr($buf, 17+22, 13)); $Local = trim(substr($buf, 17+22+13, 47)); if (strcmp($thisip, $StartIP) >= 0 && strcmp($thisip, $EndIP)<=0){ break; } if(strcmp($thisip, $StartIP) > 0){ $RangB = $RecNo; } else { $RangE = $RecNo; } } if(!($RangB < $RangE - 1)){ $ip_addres= '未知地址!'; } else { $ip_addres = $Country; $ip_addres .= $Local; } } fclose($fp); return $ip_addres; }
function getOS () { $agent = $_SERVER['HTTP_USER_AGENT']; $os = false; if (eregi('win', $agent) && strpos($agent, '95')){ $os = 'Windows 95'; } else if (eregi('win 9x', $agent) && strpos($agent, '4.90')){ $os = 'Windows ME'; } else if (eregi('win', $agent) && ereg('98', $agent)){ $os = 'Windows 98'; } else if (eregi('win', $agent) && eregi('nt 5.1', $agent)){ $os = 'Windows XP'; } else if (eregi('win', $agent) && eregi('nt 5', $agent)){ $os = 'Windows 2000'; } else if (eregi('win', $agent) && eregi('nt', $agent)){ $os = 'Windows NT'; } else if (eregi('win', $agent) && ereg('32', $agent)){ $os = 'Windows 32'; } else if (eregi('linux', $agent)){ $os = 'Linux'; } else if (eregi('unix', $agent)){ $os = 'Unix'; } else if (eregi('sun', $agent) && eregi('os', $agent)){ $os = 'SunOS'; } else if (eregi('ibm', $agent) && eregi('os', $agent)){ $os = 'IBM OS/2'; } else if (eregi('Mac', $agent) && eregi('PC', $agent)){ $os = 'Macintosh'; } else if (eregi('PowerPC', $agent)){ $os = 'PowerPC'; } else if (eregi('AIX', $agent)){ $os = 'AIX'; } else if (eregi('HPUX', $agent)){ $os = 'HPUX'; } else if (eregi('NetBSD', $agent)){ $os = 'NetBSD'; } else if (eregi('BSD', $agent)){ $os = 'BSD'; } else if (ereg('OSF1', $agent)){ $os = 'OSF1'; } else if (ereg('IRIX', $agent)){ $os = 'IRIX'; } else if (eregi('FreeBSD', $agent)){ $os = 'FreeBSD'; } else if (eregi('teleport', $agent)){ $os = 'teleport'; } else if (eregi('flashget', $agent)){ $os = 'flashget'; } else if (eregi('webzip', $agent)){ $os = 'webzip'; } else if (eregi('offline', $agent)){ $os = 'offline'; } else { $os = 'Unknown'; } return $os; }
}
?>
|