大连仟亿科技
客服中心
  • 电话
  • 电话咨询:0411-39943997
  • 手机
  • 手机咨询:15840979770
    手机咨询:13889672791
网络营销 >更多
您现在的位置:仟亿科技 > 新闻中心 > 常见问题

PHP获取访客信息代码程序

作者:billionnet 发布于:2012/10/3 14:10:14 点击量:

又写一个类,希望网友指点,使之非常完善。排版比较乱啊,请COPY到文件在看吧!获取地理位置和ISP信息是请求的Baidu隐藏接口。
 

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 隐藏接口。
 */
class 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 = '繁體中文';
		}
		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];
	}
	private function GetAddIsp() {
		$IP = $this->GetIP();
		$AddIsp = mb_convert_encoding(file_get_contents('http://open.baidu.com/ipsearch/s?tn=ipjson&wd='.$IP),'UTF-8','GBK');
		//mb_convert_encoding() 转换字符编码。
		if (preg_match('/noresult/i',$AddIsp)) {
			$AddIsp = 'None';
		}
		else {
			$Sta = stripos($AddIsp,$IP) + strlen($IP) + strlen('来自');
			$Len = stripos($AddIsp,'"}')-$Sta;
			$AddIsp = substr($AddIsp,$Sta,$Len);
		}
		$AddIsp = explode(' ',$AddIsp);
		return $AddIsp;
	}
	function GetAdd() {
		$Add = $this->GetAddIsp();
		return $Add[0];
	}
	function GetIsp() {
		$Isp = $this->GetAddIsp();
		if ($Isp[0] != 'None' && isset($Isp[1])) {
			$Isp = $Isp[1];
		}
		else {
			$Isp = 'None';
		}
		return $Isp;
	}
}
?>


分享到:


评论加载中...
内容:
评论者: 验证码:
  

Copyright@ 2011-2017 版权所有:大连仟亿科技有限公司 辽ICP备11013762-1号   google网站地图   百度网站地图   网站地图

公司地址:大连市沙河口区中山路692号辰熙星海国际2215 客服电话:0411-39943997 QQ:2088827823 42286563

法律声明:未经许可,任何模仿本站模板、转载本站内容等行为者,本站保留追究其法律责任的权利! 隐私权政策声明