可以记录访客的地理位置,操作系统,浏览器,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 = \"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; } function clientlog() { $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-d h: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 记录访客的浏览信息方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持免费资源网。
© 版权声明
THE END
暂无评论内容