PHP获取浏览器信息类和客户端地理位置的2个方法

2015-01-24信息快讯网

这篇文章主要介绍了PHP获取浏览器信息类和客户端地理位置的2个方法,需要的朋友可以参考下

一、获取浏览器信息,获取访客操作系统:windows、mac、linux、unix、bsd、other,以及访客ip地址等信息的PHP类

<?php  
/** 
 * 获取访客信息的类:语言、浏览器、操作系统、ip、地理位置、isp。 
 * 使用: 
 *   $obj = new guest_info; 
 *   $obj->getlang();     //获取访客语言:简体中文、繁w中文、english。 
 *   $obj->getbrowser();  //获取访客浏览器:msie、firefox、chrome、safari、opera、other。 
 *   $obj->getos();       //获取访客操作系统:windows、mac、linux、unix、bsd、other。 
 *   $obj->getip();       //获取访客ip地址。 
 *   $obj->getadd();      //获取访客地理位置,使用 baidu 隐藏接口。 
 *   $obj->getisp();      //获取访客isp,使用 baidu 隐藏接口。 
 */  
class guest_info{  
    function getlang() {  
        $lang = substr($_server['http_accept_language'], 0, 4);  
        //使用substr()截取字符串,从 0 位开始,截取4个字符  
        if (preg_match('/zh-c/i',$lang)) {  
        //preg_match()正则表达式匹配函数  
            $lang = '简体中文';  
        }
        elseif (preg_match('/zh/i',$lang)) {  
            $lang = '繁w中文';  
        }  
        else {  
            $lang = 'english';  
        }  
        return $lang;  
    }  
    function getbrowser() {  
        $browser = $_server['http_user_agent'];  
        if (preg_match('/msie/i',$browser)) {  
            $browser = 'msie';  
        }  
        elseif (preg_match('/firefox/i',$browser)) {  
            $browser = 'firefox';  
        }  
        elseif (preg_match('/chrome/i',$browser)) {  
            $browser = 'chrome';  
        }  
        elseif (preg_match('/safari/i',$browser)) {  
            $browser = 'safari';  
        }  
        elseif (preg_match('/opera/i',$browser)) {  
            $browser = 'opera';  
        }  
        else {  
            $browser = 'other';  
        }  
        return $browser;  
    }  
    function getos() {  
        $os = $_server['http_user_agent'];  
        if (preg_match('/win/i',$os)) {  
            $os = 'windows';  
        }  
        elseif (preg_match('/mac/i',$os)) {  
            $os = 'mac';  
        }  
        elseif (preg_match('/linux/i',$os)) {  
            $os = 'linux';  
        }  
        elseif (preg_match('/unix/i',$os)) {  
            $os = 'unix';  
        }  
        elseif (preg_match('/bsd/i',$os)) {  
            $os = 'bsd';  
        }  
        else {  
            $os = 'other';  
        }  
        return $os;  
    }  
    function getip() {  
        if (!empty($_server['http_client_ip'])) {  
        //如果变量是非空或非零的值,则 empty()返回 false。  
            $ip = explode(',',$_server['http_client_ip']);  
        }  
        elseif (!empty($_server['http_x_forwarded_for'])) {  
            $ip = explode(',',$_server['http_x_forwarded_for']);  
        }  
        elseif (!empty($_server['remote_addr'])) {  
            $ip = explode(',',$_server['remote_addr']);  
        }  
        else {  
            $ip[0] = 'none';  
        }  
        return $ip[0];  
    }      
}  

$obj = new guest_info;  
echo    $obj->getlang();  //获取访客语言:简体中文、繁w中文、english。  
echo    $obj->getbrowser(); //获取访客浏览器:msie、firefox、chrome、safari、opera、other。  
echo    $obj->getos();  //获取访客操作系统:windows、mac、linux、unix、bsd、other。  
echo    $obj->getip();  //获取访客ip地址。  
?> 


二、php利用腾讯ip分享计划获取ip地理位置

<?php  
function getiploc_qq($queryip){      
  $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryip;      
  $ch = curl_init($url);      
  curl_setopt($ch,curlopt_encoding ,'gb2312');    
  curl_setopt($ch, curlopt_timeout, 10);     
  curl_setopt($ch, curlopt_returntransfer, true) ; // 获取数据返回    
  $result = curl_exec($ch);      
  $result = mb_convert_encoding($result, "utf-8", "gb2312"); // 编码转换,否则乱码   
  curl_close($ch);     
  preg_match("@<span>(.*)</span></p>@iu",$result,$iparray);      
  $loc = $iparray[1];      
  return $loc;  
}   
//使用  
echo getiploc_qq("183.37.209.57"); //即可得到ip地址所在的地址位置。     
?> 

三、php利用新浪ip查询接口获取ip地理位置

<?php   
function getiploc_sina($queryip){      
   $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryip;      
   $ch = curl_init($url);       
   curl_setopt($ch,curlopt_encoding ,'utf8');       
   curl_setopt($ch, curlopt_timeout, 5);     
   curl_setopt($ch, curlopt_returntransfer, true) ; // 获取数据返回    
   $location = curl_exec($ch);      
   $location = json_decode($location);      
   curl_close($ch);           
   $loc = "";     
   if($location===false) return "";       
      if (empty($location->desc)) {      
      $loc = $location->province.$location->city.$location->district.$location->isp;    
   }else{         $loc = $location->desc;      
   }      
    return $loc;  
}  
echo getiploc_sina("183.37.209.57");  
?>

php实现的双向队列类实例
php实现的Timer页面运行时间监测类
php密码生成类实例
PHP中file_get_contents高用法实例
php实现的Cookies操作类实例
php通过隐藏表单控件获取到前两个页面的url
php获取一个变量的名字的方法
php获取URL中带#号等特殊符号参数的解决方法
PHP获取表单所有复选框的值的方法
PHP获取一个字符串中间一部分字符的方法
php出现内存位置访问无效错误问题解决方法
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
兼容ie6浏览器的php下载文件代码分享
destoon在360浏览器下出现用户被强行注销的解决方法
百度地图API应用之获取用户的具体位置
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
thinkphp实现面包屑导航(当前位置)例子分享
php强制文件下载而非在浏览器打开的自定义函数分享
php获取中文拼音首字母类和函数分享
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
php计算当前程序执行时间示例
php实现的百度搜索某地天气的小偷代码
php url路由入门实例
Windows下的PHP安装文件线程安全和非线程安全的区别
php获取mysql字段名称和其它信息的例子
PHP获取网页标题的3种实现方法代码实例
PHP中比较两个字符串找出第一个不同字符位置例子
PHP获取栏目的所有子级和孙级栏目的ID号示例
php根据年月获取季度的方法
php求两个目录的相对路径示例(php获取相对路径)
php判断字符串在另一个字符串位置的方法
php利用新浪接口查询ip获取地理位置示例
php利用腾讯ip分享计划获取地理位置示例分享
php中文乱码怎么办如何让浏览器自动识别utf-8
PHP限制页面只能在微信自带浏览器访问的代码
利用浏览器的Javascript控制台调试PHP程序
php上传图片到指定位置路径保存到数据库的具体实现
使用php检测用户当前使用的浏览器是否为IE浏览器
php使浏览器直接下载pdf文件的方法
©2014-2024 dbsqp.com