/**
* 获取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. Python 创建本地服务器环境生成二维码
  2. 谈谈iOS app的线上性能监测
  3. linux 配置 tomcat 自动发布脚本
  4. asp.net下AjaxMethod的使用方法
  5. 关于git新建本地分支与远程分支关联问题
  6. 读书笔记_Effective_C++_条款四十四:将与参数无关的代码抽离template
  7. C++将string转化成字符串数组
  8. Android Task 与 Back Stack
  9. hdu 1318 Palindromes(回文词)
  10. sqlachemy 使用实例
  11. Activity数据传输到服务
  12. [AHOI2012]铁盘整理
  13. Kafka 详解(二)------集群搭建
  14. 【mybatis】-- springboot整合mybatis
  15. xrange与range的区别
  16. [原][粒子特效][spark]事件action
  17. python面向对象之 类
  18. android xml 解析汉字只出来一个字的问题
  19. Activity四大启动模式
  20. LeetCode 225 Implement Stack using Queues(用队列来实现栈)(*)

热门文章

  1. SaltStack 模块
  2. Java实现个人博客网站
  3. Photoshop去图片水印——适用复杂图片上有水印
  4. 梯度下降法(BGD、SGD)、牛顿法、拟牛顿法(DFP、BFGS)、共轭梯度法
  5. MVC爬取网页指定内容到数据库
  6. 委托 匿名 lambda表达式
  7. python Rpyc简单使用
  8. UGUI之Image使用以及技能释放CD
  9. beego 初体验 - 环境搭建
  10. 关于linux下firefox无法播放mp3文件