PHP 记录访客的浏览信息方法
可以记录访客的地理位置,操作系统,浏览器,IP,时间和访问的文件。
1.首先创建一个comm_function.php文件:
".$_SERVER['REMOTE_ADDR']; /** *获取客户端类型,手机还是电脑,以及相应的操作系统类型。 * *@paramstring$subject */ functionget_os($agent){ $os=false; if(preg_match('/win/i',$agent)&&strpos($agent,'95')){ $os='Windows95'; }elseif(preg_match('/win9x/i',$agent)&&strpos($agent,'4.90')){ $os='WindowsME'; }elseif(preg_match('/win/i',$agent)&&preg_match('/98/i',$agent)){ $os='Windows98'; }elseif(preg_match('/win/i',$agent)&&preg_match('/nt6.0/i',$agent)){ $os='WindowsVista'; }elseif(preg_match('/win/i',$agent)&&preg_match('/nt6.1/i',$agent)){ $os='Windows7'; }elseif(preg_match('/win/i',$agent)&&preg_match('/nt6.2/i',$agent)){ $os='Windows8'; }elseif(preg_match('/win/i',$agent)&&preg_match('/nt10.0/i',$agent)){ $os='Windows10';//添加win10判断 }elseif(preg_match('/win/i',$agent)&&preg_match('/nt5.1/i',$agent)){ $os='WindowsXP'; }elseif(preg_match('/win/i',$agent)&&preg_match('/nt5/i',$agent)){ $os='Windows2000'; }elseif(preg_match('/win/i',$agent)&&preg_match('/nt/i',$agent)){ $os='WindowsNT'; }elseif(preg_match('/win/i',$agent)&&preg_match('/32/i',$agent)){ $os='Windows32'; }elseif(preg_match('/linux/i',$agent)){ if(preg_match("/Mobile/",$agent)){ if(preg_match("/QQ/i",$agent)){ $os="AndroidQQBrowser"; }else{ $os="AndroidBrowser"; } }else{ $os='PC-Linux'; } }elseif(preg_match('/Mac/i',$agent)){ if(preg_match("/Mobile/",$agent)){ if(preg_match("/QQ/i",$agent)){ $os="IPhoneQQBrowser"; }else{ $os="IPhoneBrowser"; } }else{ $os='MacOSX'; } }elseif(preg_match('/unix/i',$agent)){ $os='Unix'; }elseif(preg_match('/sun/i',$agent)&&preg_match('/os/i',$agent)){ $os='SunOS'; }elseif(preg_match('/ibm/i',$agent)&&preg_match('/os/i',$agent)){ $os='IBMOS/2'; }elseif(preg_match('/Mac/i',$agent)&&preg_match('/PC/i',$agent)){ $os='Macintosh'; }elseif(preg_match('/PowerPC/i',$agent)){ $os='PowerPC'; }elseif(preg_match('/AIX/i',$agent)){ $os='AIX'; }elseif(preg_match('/HPUX/i',$agent)){ $os='HPUX'; }elseif(preg_match('/NetBSD/i',$agent)){ $os='NetBSD'; }elseif(preg_match('/BSD/i',$agent)){ $os='BSD'; }elseif(preg_match('/OSF1/i',$agent)){ $os='OSF1'; }elseif(preg_match('/IRIX/i',$agent)){ $os='IRIX'; }elseif(preg_match('/FreeBSD/i',$agent)){ $os='FreeBSD'; }elseif(preg_match('/teleport/i',$agent)){ $os='teleport'; }elseif(preg_match('/flashget/i',$agent)){ $os='flashget'; }elseif(preg_match('/webzip/i',$agent)){ $os='webzip'; }elseif(preg_match('/offline/i',$agent)){ $os='offline'; }else{ $os='未知操作系统'; } return$os; } /** *获取客户端的浏览器类型 *@returnstring */ functionget_broswer($sys){ if(stripos($sys,"Firefox/")>0){ preg_match("/Firefox\/([^;)]+)+/i",$sys,$b); $exp[0]="Firefox"; $exp[1]=$b[1];//获取火狐浏览器的版本号 }elseif(stripos($sys,"Maxthon")>0){ preg_match("/Maxthon\/([\d\.]+)/",$sys,$aoyou); $exp[0]="傲游"; $exp[1]=$aoyou[1]; }elseif(stripos($sys,"MSIE")>0){ preg_match("/MSIE\s+([^;)]+)+/i",$sys,$ie); $exp[0]="IE"; $exp[1]=$ie[1];//获取IE的版本号 }elseif(stripos($sys,"OPR")>0){ preg_match("/OPR\/([\d\.]+)/",$sys,$opera); $exp[0]="Opera"; $exp[1]=$opera[1]; }elseif(stripos($sys,"Edge")>0){ //win10Edge浏览器添加了chrome内核标记在判断Chrome之前匹配 preg_match("/Edge\/([\d\.]+)/",$sys,$Edge); $exp[0]="Edge"; $exp[1]=$Edge[1]; }elseif(stripos($sys,"Chrome")>0){ preg_match("/Chrome\/([\d\.]+)/",$sys,$google); $exp[0]="Chrome"; $exp[1]=$google[1];//获取googlechrome的版本号 }elseif(stripos($sys,'rv:')>0&&stripos($sys,'Gecko')>0){ preg_match("/rv:([\d\.]+)/",$sys,$IE); $exp[0]="IE"; $exp[1]=$IE[1]; }else{ $exp[0]="未知浏览器"; $exp[1]=""; } return$exp[0].'('.$exp[1].')'; } /** *根据客户端IP获取到其具体的位置信息 *@paramunknown$ip *@returnstring */ functionget_address_by_ip($ip){ $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip; $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_HEADER,0); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $info=curl_exec($curl); curl_close($curl); return$info; } functionclientlog(){ $useragent=$_SERVER['HTTP_USER_AGENT']; $clientip=$_SERVER['REMOTE_ADDR']; $client_info=get_os($useragent)."---".get_broswer($useragent); $rawdata_position=get_address_by_ip($clientip); $rawdata_position=json_decode($rawdata_position,true); $country=$rawdata_position['data']['country']; $province=$rawdata_position['data']['region']; $city=$rawdata_position['data']['city']; $nettype=$rawdata_position['data']['isp']; $time=date('y-m-dh:m:s'); $data="来自{$country}{$province}{$city}{$nettype}的客户端:{$client_info},IP为:{$clientip},在{$time}时刻访问了{$_SERVER['PHP_SELF']}文件!\r\n"; $filename="./log.log"; if(!file_exists($filename)){ fopen($filename,"w+"); } file_put_contents($filename,$data,FILE_APPEND); }
2.在别的文件引入这个comm_function.php
require_once"comm_function.php";
以上这篇PHP记录访客的浏览信息方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。