PHP获取操作系统、IP、地理位置、浏览器、ISP等信息_PHP类代码

2014-03-19 from—http://www.codefans.net/articles/1224.shtml?jdfwkey=0tbrk3

  • PHP语言、浏览器、操作系统、IP、地理位置、ISP,本PHP类里面有以下几种方法,同时也是用法说明:
    $obj = new class_guest_info;
    $obj->GetLang(); //获取访客语言:简体中文、繁體中文、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 隐藏接口。
    001<?php
    002class class_guest_info{
    003    function GetLang() {
    004        $Lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4);
    005        //使用substr()截取字符串,从 0 位开始,截取4个字符
    006        if (preg_match('/zh-c/i',$Lang)) {
    007        //preg_match()正则表达式匹配函数
    008            $Lang = '简体中文';
    009        }
    010        elseif (preg_match('/zh/i',$Lang)) {
    011            $Lang = '繁體中文';
    012        }
    013        else {
    014            $Lang = 'English';
    015        }
    016        return $Lang;
    017    }
    018    function GetBrowser() {
    019        $Browser = $_SERVER['HTTP_USER_AGENT'];
    020        if (preg_match('/MSIE/i',$Browser)) {
    021            $Browser = 'MSIE';
    022        }
    023        elseif (preg_match('/Firefox/i',$Browser)) {
    024            $Browser = 'Firefox';
    025        }
    026        elseif (preg_match('/Chrome/i',$Browser)) {
    027            $Browser = 'Chrome';
    028        }
    029        elseif (preg_match('/Safari/i',$Browser)) {
    030            $Browser = 'Safari';
    031        }
    032        elseif (preg_match('/Opera/i',$Browser)) {
    033            $Browser = 'Opera';
    034        }
    035        else {
    036            $Browser = 'Other';
    037        }
    038        return $Browser;
    039    }
    040    function GetOS() {
    041        $OS = $_SERVER['HTTP_USER_AGENT'];
    042        if (preg_match('/win/i',$OS)) {
    043            $OS = 'Windows';
    044        }
    045        elseif (preg_match('/mac/i',$OS)) {
    046            $OS = 'MAC';
    047        }
    048        elseif (preg_match('/linux/i',$OS)) {
    049            $OS = 'Linux';
    050        }
    051        elseif (preg_match('/unix/i',$OS)) {
    052            $OS = 'Unix';
    053        }
    054        elseif (preg_match('/bsd/i',$OS)) {
    055            $OS = 'BSD';
    056        }
    057        else {
    058            $OS = 'Other';
    059        }
    060        return $OS;
    061    }
    062    function GetIP() {
    063        if (!emptyempty($_SERVER['HTTP_CLIENT_IP'])) {
    064        //如果变量是非空或非零的值,则 empty()返回 FALSE。
    065            $IP = explode(',',$_SERVER['HTTP_CLIENT_IP']);
    066        }
    067        elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    068            $IP = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
    069        }
    070        elseif (!emptyempty($_SERVER['REMOTE_ADDR'])) {
    071            $IP = explode(',',$_SERVER['REMOTE_ADDR']);
    072        }
    073        else {
    074            $IP[0] = 'None';
    075        }
    076        return $IP[0];
    077    }
    078    private function GetAddIsp() {
    079        $IP = $this->GetIP();
    080        $AddIsp = mb_convert_encoding(file_get_contents('http://open.baidu.com/ipsearch/stn=ipjson&wd='.$IP),'UTF-8','GBK');
    081        //mb_convert_encoding() 转换字符编码。
    082        if (preg_match('/noresult/i',$AddIsp)) {
    083            $AddIsp = 'None';
    084        }
    085        else {
    086            $Sta = stripos($AddIsp,$IP) + strlen($IP) + strlen('来自');
    087            $Len = stripos($AddIsp,'"}')-$Sta;
    088            $AddIsp = substr($AddIsp,$Sta,$Len);
    089        }
    090        $AddIsp = explode(' ',$AddIsp);
    091        return $AddIsp;
    092    }
    093    function GetAdd() {
    094        $Add = $this->GetAddIsp();
    095        return $Add[0];
    096    }
    097    function GetIsp() {
    098        $Isp = $this->GetAddIsp();
    099        if ($Isp[0] != 'None' && isset($Isp[1])) {
    100            $Isp = $Isp[1];
    101        }
    102        else {
    103            $Isp = 'None';
    104        }
    105        return $Isp;
    106    }
    107}
    108?>
上一篇
下一篇