zoukankan      html  css  js  c++  java
  • PHP获取访客IP、地区位置信息、浏览器、来源页面

    不多说了,每个方法都注释了,可以直接用:

    <?php
    //这个类似用来获取访客信息的
    //方便统计
    class visitorInfo
    {
        //获取访客ip
        public function getIp()
        {
            $ip=false;
            if(!empty($_SERVER["HTTP_CLIENT_IP"])){
                $ip = $_SERVER["HTTP_CLIENT_IP"];
            }
            if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
                if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
                for ($i = 0; $i < count($ips); $i++) {
                    if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
                        $ip = $ips[$i];
                        break;
                    }
                }
            }
            return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
        }
    
        //根据ip获取城市、网络运营商等信息
        public function findCityByIp($ip){
            $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
            return json_decode($data,$assoc=true);
        }
    
       //获取用户浏览器类型
        public function getBrowser(){
            $agent=$_SERVER["HTTP_USER_AGENT"];
            if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断
                return "ie";
            else if(strpos($agent,'Firefox')!==false)
                return "firefox";
            else if(strpos($agent,'Chrome')!==false)
                return "chrome";
            else if(strpos($agent,'Opera')!==false)
                return 'opera';
            else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false)
                return 'safari';
            else
                return 'unknown';
        }
    
        //获取网站来源
        public function getFromPage(){
            return $_SERVER['HTTP_REFERER'];
        }
    
    }

    本人博客:PHP获取访客IP、地区位置信息、浏览器、来源页面

    http://www.wangtuizhijia.com/archives/335

  • 相关阅读:
    (转)如何搭建一个vue项目
    vue项目设置自动打开浏览器
    vue项目关闭代码校验
    前端面试知识点
    图片瀑布流,so easy!
    详细梳理ajax跨域4种解决方案
    css实现内容不相同的左右两个div等高
    简单了解css3轮廓outline
    vue事件监听机制
    table-layout:fixed
  • 原文地址:https://www.cnblogs.com/jianqingwang/p/7017495.html
Copyright © 2011-2022 走看看