PHP获取客户端操作系统,浏览器,语言,IP,IP归属地等
class Client
{
////获得访客浏览器类型
function Get_Browser(){
if(!empty($_SERVER[HTTP_USER_AGENT])){
$br = $_SERVER[HTTP_USER_AGENT];
if (preg_match(/MSIE/i,$br)) {
$br = MSIE;
}
elseif (preg_match(/Firefox/i,$br)) {
$br = Firefox;
}
elseif (preg_match(/Chrome/i,$br)) {
$br = Chrome;
}
elseif (preg_match(/Safari/i,$br)) {
$br = Safari;
}
elseif (preg_match(/Opera/i,$br)) {
$br = Opera;
}else {
$br = Other;
}
return $br;
}
else{
return "unknow";
}
}
////获得访客浏览器语言
function Get_Lang(){
if(!empty($_SERVER[HTTP_ACCEPT_LANGUAGE])){
$lang = $_SERVER[HTTP_ACCEPT_LANGUAGE];
$lang = substr($lang,0,5);
if(preg_match("/zh-cn/i",$lang)){
$lang = "简体中文";
}
elseif(preg_match("/zh/i",$lang)){
$lang = "繁体中文";
}
else{
$lang = "English";
}
return $lang;
}
else{
return "unknow";
}
}
////获取访客操作系统
function Get_Os(){
if(!empty($_SERVER[HTTP_USER_AGENT])){
$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;
}
else{
return "unknow";
}
}
////获得访客真实ip
function Get_Ip_Addr(){
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if(!empty($_SERVER[HTTP_X_FORWARDED_FOR])){ //获取代理ip
$ips = explode(,,$_SERVER[HTTP_X_FORWARDED_FOR]);
}
if($ip){
$ips = array_unshift($ips,$ip);
}
$count = count($ips);
for($i=0;$i<$count;$i++){
if(!preg_match("/^(10|172.16|192.168)./i",$ips[$i])){//排除局域网ip
$ip = $ips[$i];
break;
}
}
$tip = empty($_SERVER[REMOTE_ADDR]) ? $ip : $_SERVER[REMOTE_ADDR];
if($tip=="127.0.0.1"){ //获得本地真实IP
return self::get_onlineip();
}
else{
return $tip;
}
}
////获得本地真实IP
function get_onlineip() {
$ip_json = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=myip");
$ip_arr=json_decode(stripslashes($ip_json),1);
if($ip_arr[code]==0)
{
return $ip_arr[data][ip];
}
}
////根据ip获得访客所在地地名
function Get_Ip_From($ip=){
if(empty($ip)){
$ip = self::Getip();
}
$ip_json=@file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//根据taobao ip
$ip_arr=json_decode(stripslashes($ip_json),1);
if($ip_arr[code]==0)
{
return $ip_arr;
}
else
{
return false;
}
}
}