PHP 记录访客的浏览信息方法
2018-09-07 12:45
可以记录访客的地理位置,操作系统,浏览器,IP,时间和访问的文件。
1.首先创建一个comm_function.php文件:
<?php //echo $_SERVER[HTTP_USER_AGENT]; //echo <br />.$_SERVER [REMOTE_ADDR]; /** * 获取客户端类型,手机还是电脑,以及相应的操作系统类型。 * * @param string $subject */ function get_os($agent) { $os = false; if (preg_match ( /win/i, $agent ) && strpos ( $agent, 95 )) { $os = Windows 95; } else if (preg_match ( /win 9x/i, $agent ) && strpos ( $agent, 4.90 )) { $os = Windows ME; } else if (preg_match ( /win/i, $agent ) && preg_match ( /98/i, $agent )) { $os = Windows 98; } else if (preg_match ( /win/i, $agent ) && preg_match ( /nt 6.0/i, $agent )) { $os = Windows Vista; } else if (preg_match ( /win/i, $agent ) && preg_match ( /nt 6.1/i, $agent )) { $os = Windows 7; } else if (preg_match ( /win/i, $agent ) && preg_match ( /nt 6.2/i, $agent )) { $os = Windows 8; } else if (preg_match ( /win/i, $agent ) && preg_match ( /nt 10.0/i, $agent )) { $os = Windows 10; // 添加win10判断 } else if (preg_match ( /win/i, $agent ) && preg_match ( /nt 5.1/i, $agent )) { $os = Windows XP; } else if (preg_match ( /win/i, $agent ) && preg_match ( /nt 5/i, $agent )) { $os = Windows 2000; } else if (preg_match ( /win/i, $agent ) && preg_match ( /nt/i, $agent )) { $os = Windows NT; } else if (preg_match ( /win/i, $agent ) && preg_match ( /32/i, $agent )) { $os = Windows 32; } else if (preg_match ( /linux/i, $agent )) { if(preg_match(/Mobile/, $agent)){ if(preg_match(/QQ/i, $agent)){ $os = Android QQ Browser; }else{ $os = Android Browser; } }else{ $os = PC-Linux; } } else if (preg_match ( /Mac/i, $agent )) { if(preg_match(/Mobile/, $agent)){ if(preg_match(/QQ/i, $agent)){ $os = IPhone QQ Browser; }else{ $os = IPhone Browser; } }else{ $os = Mac OS X; } } else if (preg_match ( /unix/i, $agent )) { $os = Unix; } else if (preg_match ( /sun/i, $agent ) && preg_match ( /os/i, $agent )) { $os = SunOS; } else if (preg_match ( /ibm/i, $agent ) && preg_match ( /os/i, $agent )) { $os = IBM OS/2; } else if (preg_match ( /Mac/i, $agent ) && preg_match ( /PC/i, $agent )) { $os = Macintosh; } else if (preg_match ( /PowerPC/i, $agent )) { $os = PowerPC; } else if (preg_match ( /AIX/i, $agent )) { $os = AIX; } else if (preg_match ( /HPUX/i, $agent )) { $os = HPUX; } else if (preg_match ( /NetBSD/i, $agent )) { $os = NetBSD; } else if (preg_match ( /BSD/i, $agent )) { $os = BSD; } else if (preg_match ( /OSF1/i, $agent )) { $os = OSF1; } else if (preg_match ( /IRIX/i, $agent )) { $os = IRIX; } else if (preg_match ( /FreeBSD/i, $agent )) { $os = FreeBSD; } else if (preg_match ( /teleport/i, $agent )) { $os = teleport; } else if (preg_match ( /flashget/i, $agent )) { $os = flashget; } else if (preg_match ( /webzip/i, $agent )) { $os = webzip; } else if (preg_match ( /offline/i, $agent )) { $os = offline; } else { $os = 未知操作系统; } return $os; } /** * 获取 客户端的浏览器类型 * @return string */ function get_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) { //win10 Edge浏览器 添加了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]; //获取google chrome的版本号 } 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 获取到其具体的位置信息 * @param unknown $ip * @return string */ function get_address_by_ip($ip) { $url = 来自{$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 记录访客的浏览信息方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。