<?php /** * * 根据sina api获取用户的IP地址及地理信息 * eg: Guest::Instance()->getBrowser(); * */ class Guest { private static $_instance; private $ipUrl = 'http://1212.ip138.com/ic.asp'; private $ipApiUrl = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip='; /** * 单例模式 * @return map */ public static function Instance() { if (!self::$_instance instanceof self) { self::$_instance = new self; } return self::$_instance; } //获得访客浏览器类型 function getBrowser() { 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 "获取浏览器信息失败!"; } } //获得访客浏览器语言 function getLang() { 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 "获取浏览器语言失败!"; } } //获取访客操作系统 function getOs() { 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 "获取访客操作系统信息失败!"; } } //获得访客真实ip function getIp() { $ips = array(); $ip = ''; 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 $this->get_onlineip(); } else { return $tip; } } //获得本地真实IP 如果有问题http://www.ip138.com/找到iframe更新ipUrl function get_onlineip() { $mip = file_get_contents($this->ipUrl); if ($mip) { preg_match("/\[.*\]/", $mip, $sip); $p = array("/\[/", "/\]/"); return preg_replace($p, "", $sip[0]); } else { return "获取IP地址失败"; } } //根据ip获得访客所在地地名 function getAddress($ip = '') { if (empty($ip)) { $ip = $this->getIp(); } $ipadd = file_get_contents($this->ipApiUrl. $ip); //根据新浪api接口获取 if ($ipadd) { $charset = iconv("gbk", "utf-8", $ipadd); preg_match_all("/[\x{4e00}-\x{9fa5}]+/u", $charset, $ipadds); return $ipadds; //返回一个二维数组 } else { return "地址不存在"; } } } ?>
相关推荐
一个可以取得客户端的ip、地理信息、浏览器、本地真实IP的php类库,感兴趣的朋友们可以下载下来,用到自己的项目中。
一个可以取得客户端的ip、地理信息、浏览器、本地真实IP的php类库
移动互联网时代,手机站是必须的,以下是本人整理的php获取手机浏览器的信息函数,希望对您开发手机站有所帮助,此收藏的手机信息函数类有取手机号码,浏览器报头信息,取得手机类型,取得手机IP等功能
* 描述: 手机信息类 * 其他: 偶然 编写 */ class mobile{ /** * 函数名称: getPhoneNumber * 函数功能: 取手机号 * 输入参数: none * 函数返回值: 成功返回号码,失败返回false * 其它说明:...
Composer 是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER[“HTTP_X_FORWARDED_FOR”] 来读取。 (2) 但只有客户端使用“透明代理”的情况下,$_SERVER[“HTTP_X_FORWARDED_FOR”] 的值才是客户端真正的IP...
(1).REMOTE_ADDR:浏览当前页面的用户计算机的ip地址 (2).HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关 (3).HTTP_CLIENT_IP:客户端的ip 在PHP 中使用 $_SERVER[“REMOTE_ADDR”] 来取得客户端的 IP 地址,...
介绍一个适用于各种数据库链接类,返回根据从结果集取得的行生成的数组,返回根据所取得的行生成的对象,取得前一次 MySQL 操作所影响的记录行数,获得客户端真实的IP地址。
取得金钥 您将需要发布和订阅密钥来对您的应用进行身份验证。 从获取密钥。 配置PubNub 将Java SDK集成到您的项目中: 没有作曲家 克隆以下存储库: git clone https://github.com/pubnub/php.git ./pubnub-php ...
PHP处理多个同名复选框,并在客户端用javascript来判断 把PHP4安装到Win2000的IIS5中 如何实现页面自动跳转 正则表达式使用详解 正则表达式使用详解(二) PHP4.04 PWS在Win98下的安装与配
取得正则表达式的全部匹配.php 取得正则表达式的全部匹配 返回与模式匹配的数组单元.php 返回与模式匹配的数组单元 正则表达式的替换.php 正则表达式的替换 正则表达式的拆分.php 正则表达式的拆分 表单验证....
// 取得 MySQL 客户端信息 } } /****************************************************************** -- 函数名:query($sql) -- 作 用:数据库执行语句,可执行查询添加修改删除等任何sql语句 -- 参 数:...
// // 作用取得客户端的ip、地理位置、浏览器、以及访问设备 class get_equipment_info{ ////获得访客浏览器类型 function GetBrowser(){ if(!empty($_SERVER['HTTP_USER_AGENT'])) { $br = $_SERVER['...
《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发...
至于客户端嘛当然是用JS取得APC_UPLOAD_PROGRESS的值了,当然还有AJAX。我们得到的上传进度并不是理想连续的,如想获得更好的用户体验,需要在客户端用JS作进一步处理。 在写这篇文档的时候,各空间商们基本没有...
Xendit API PHP客户端 该库是Xendit API的抽象,可以从用PHP编写的应用程序访问。 实付款 创建支出 创建批次支出 通过ID获取付款 通过外部ID获取支出 获取可支配的银行 电子钱包 创建电子钱包费用 获取电子钱包收费...
PHP信息函数包含的一些函数概念总结如下。 PHP信息函数之getenv 适用版本:PHP3, PHP4 函数功能:取得环境变量数值。 函数语法:string getenv (string varname) 函数说明:这个函数能够返回 PHP 的环境变量数值, ...
《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发...