php监控访客_PHP 记录访客的浏览信息方法

可以记录访客的地理位置,操作系统,浏览器,IP,时间和访问的文件。

1.首先创建一个comm_function.php文件:<?php //echo $_SERVER["HTTP_USER_AGENT"];//echo "
".$_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("/MSIEs+([^;)]+)+/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"]}文件!"; $filename = "./log.log"; if (! file_exists ( $filename )) { fopen ( $filename, "w+" ); } file_put_contents ( $filename, $data, FILE_APPEND );}

2.在别的文件引入这个comm_function.phprequire_once "comm_function.php";

以上这篇PHP 记录访客的浏览信息方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持网页设计。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值