/**
* 获取ip
*/
public static function getIp()
{
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR');
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$ips = explode(',', $ip);
if (count($ips) > 1) {
$ip = $ips[0];
}
return $ip;
}
/**
* 获取客户端浏览器
*/
public static function getBrowse()
{
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
} else {
$userAgent = 'unknown';
}
$browser = 'other';
if (preg_match('/MSIE/i', $userAgent)) {
$browser = 'ie';
} else if (preg_match('/Firefox/i', $userAgent)) {
$browser = 'Firefox';
} else if (preg_match('/Chrome/i', $userAgent)) {
$browser = 'chrome';
} else if (preg_match('/Safari/i', $userAgent)) {
$browser = 'safari';
} else if (preg_match('/Opera/i', $userAgent)) {
$browser = 'opera';
}
return $browser;
}
/**
* 获取客户端访问操作系统
*/
public static function getOs()
{
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
} else {
$userAgent = 'unknown';
} $os = 'web';
if (preg_match('/iphone/i', $userAgent)) {
$os = 'iphone';
} else if (preg_match('/android/i', $userAgent)) {
$os = 'android';
} else if (preg_match('/ipad/i', $userAgent)) {
$os = 'ipad';
} else if (preg_match('/win/i', $userAgent)) {
$os = 'windows';
} else if (preg_match('/mac/i', $userAgent)) {
$os = 'mac';
} else if (preg_match('/linux/i', $userAgent)) {
$os = 'linux';
} else if (preg_match('/unix/i', $userAgent)) {
$os = 'unix';
} else if (preg_match('/bsd/i', $userAgent)) {
$os = 'bsd';
}
return $os;
} /**
* 获取客户端访问设备
*/
public static function getDevice()
{
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
} else {
$userAgent = 'unknown';
}
$device = 'pc';
if (preg_match('/iphone/i', $userAgent)) {
$device = 'phone';
} else if (preg_match('/android/i', $userAgent)) {
$device = 'phone';
} else if (preg_match('/ipad/i', $userAgent)) {
$device = 'pad';
} else if (preg_match('/win/i', $userAgent)) {
$device = 'pc';
} else if (preg_match('/mac/i', $userAgent)) {
$device = 'pc';
} else if (preg_match('/linux/i', $userAgent)) {
$device = 'pc';
} else if (preg_match('/unix/i', $userAgent)) {
$device = 'pc';
} else if (preg_match('/bsd/i', $userAgent)) {
$device = 'pc';
}
return $device;
}

最新文章

  1. windows下新安装的mysql修改root password问题
  2. HTML5进阶段内联标签汇总(小篇)
  3. jackson报错 无法解析,但是json一切正常
  4. mysql 数据表中查找、删除重复记录
  5. PHP 转换接口编码
  6. Java-struts2的问题 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
  7. sql group by聚合函数
  8. Eclipse连接MuMu模拟器 方便 测试 查日志
  9. Informatica学习:2、配置存储库服务和集成服务
  10. poj_1151 线段树
  11. window系统JAVA开发环境的搭建
  12. VK Cup 2016 - Round 1 (Div. 2 Edition) E. Bear and Contribution 单调队列
  13. [Java]基础.端口
  14. docker-compose 配置
  15. Jquery 动态生成的元素绑定事件
  16. Oracle Linux 7.3下载与 dtrace安装
  17. c语言-单链表(二)
  18. [vijos]lxhgww的奇思妙想(长链剖分)
  19. Apache + Tomcat集群 + 负载均衡
  20. Harbor HA部署-使用Ceph RADOS后端

热门文章

  1. js关卡函数,throat函数实现,定时运行函数
  2. nodejs 模块moment格式化时间,获取当前时间的前一天时间
  3. 10 Free Image Hosting Sites for Your Photos
  4. js不能拦截302
  5. 工具方法 获取远程IP
  6. MyBatis基础入门《十六》缓存
  7. Javascript-可莱托指数判断
  8. selenium获取文本
  9. ASP.NET MVC4中加入Log4Net日志记录功能
  10. Unity shader学习之反射