<?php
/**
* 获得客户端的操作系统
*
* @access private
* @return void
*/
function get_os()
{
if (empty($_SERVER['HTTP_USER_AGENT']))
{
return 'Unknown';
} $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
$os = ''; if (strpos($agent, 'win') !== false)
{
if (strpos($agent, 'nt 5.1') !== false)
{
$os = 'Windows XP';
}
elseif (strpos($agent, 'nt 5.2') !== false)
{
$os = 'Windows 2003';
}
elseif (strpos($agent, 'nt 5.0') !== false)
{
$os = 'Windows 2000';
}
elseif (strpos($agent, 'nt 6.0') !== false)
{
$os = 'Windows Vista';
}
elseif (strpos($agent, 'nt') !== false)
{
$os = 'Windows NT';
}
elseif (strpos($agent, 'win 9x') !== false && strpos($agent, '4.90') !== false)
{
$os = 'Windows ME';
}
elseif (strpos($agent, '98') !== false)
{
$os = 'Windows 98';
}
elseif (strpos($agent, '95') !== false)
{
$os = 'Windows 95';
}
elseif (strpos($agent, '32') !== false)
{
$os = 'Windows 32';
}
elseif (strpos($agent, 'ce') !== false)
{
$os = 'Windows CE';
}
}
elseif (strpos($agent, 'linux') !== false)
{
$os = 'Linux';
}
elseif (strpos($agent, 'unix') !== false)
{
$os = 'Unix';
}
elseif (strpos($agent, 'sun') !== false && strpos($agent, 'os') !== false)
{
$os = 'SunOS';
}
elseif (strpos($agent, 'ibm') !== false && strpos($agent, 'os') !== false)
{
$os = 'IBM OS/2';
}
elseif (strpos($agent, 'mac') !== false && strpos($agent, 'pc') !== false)
{
$os = 'Macintosh';
}
elseif (strpos($agent, 'powerpc') !== false)
{
$os = 'PowerPC';
}
elseif (strpos($agent, 'aix') !== false)
{
$os = 'AIX';
}
elseif (strpos($agent, 'hpux') !== false)
{
$os = 'HPUX';
}
elseif (strpos($agent, 'netbsd') !== false)
{
$os = 'NetBSD';
}
elseif (strpos($agent, 'bsd') !== false)
{
$os = 'BSD';
}
elseif (strpos($agent, 'osf1') !== false)
{
$os = 'OSF1';
}
elseif (strpos($agent, 'irix') !== false)
{
$os = 'IRIX';
}
elseif (strpos($agent, 'freebsd') !== false)
{
$os = 'FreeBSD';
}
elseif (strpos($agent, 'teleport') !== false)
{
$os = 'teleport';
}
elseif (strpos($agent, 'flashget') !== false)
{
$os = 'flashget';
}
elseif (strpos($agent, 'webzip') !== false)
{
$os = 'webzip';
}
elseif (strpos($agent, 'offline') !== false)
{
$os = 'offline';
}
else
{
$os = 'Unknown';
} return $os;
}
?>

ecshop获取客户端操作系统的更多相关文章

  1. js获取客户端操作系统

    function detectOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.platform == " ...

  2. PHP获取客户端操作系统,浏览器,语言,IP,IP归属地等

    <?php class Client { ////获得访客浏览器类型 function Get_Browser(){ if(!empty($_SERVER['HTTP_USER_AGENT']) ...

  3. JS 获取客户端操作系统

    function detectOS() {     var sUserAgent = navigator.userAgent;     var isWin = (navigator.platform ...

  4. C#获取客户端相关信息

    1.获取Uri参数 2.获取客户端操作系统.浏览器信息 3.获取客户端分辨率 4.C#判断用户是手机访问还是PC访问

  5. C# 服务端获取客户端 系统/浏览器/IP

    /// <summary> /// 获取客户端操作系统版本 /// </summary> /// <returns></returns> public ...

  6. .NET 获取客户端的操作系统版本、浏览器版本和IP地址

    我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取. .NET 获取客户端的操作系 ...

  7. .NET获取客户端的操作系统、IP地址、浏览器版本

    获取客户端的操作系统: #region 获取操作系统版本号 /// <summary> /// 获取操作系统版本号 /// </summary> /// <returns ...

  8. 获取ip,获取客户端浏览器,获取客户端访问操作系统,获取客户端访问设备

    /** * 获取ip */ public static function getIp() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CL ...

  9. php获取客户端IP地址、所在地、操作系统、浏览器信息

    本实例主要实现获取客户端的IP,再根据获取的IP获取所在地,还可以获取用户当前电脑使用的操作系统以及用户是通过什么浏览器进行访问的. 您可以在这里查看具体演示和下载demo  http://www.j ...

随机推荐

  1. Nodejs简单验证码ccap安装

    首先要求: node npm 安装时如果提示npm-gyp失败,可进行如下操作: 确认python版本2.7+ 安装npm install ccap 如果失败,尝试npm install ccap@0 ...

  2. ubuntu14.04.1 LTS 64bits较快的更新源

    网上关于ubuntu更新源的帖子一大堆,但是我使用网易源的时候,执行sudo apt-get update命令的时候,总是在最后几步出现hash校验的问题,虽然没什么大的影响,但是对于患有强迫症晚期综 ...

  3. Android中UI线程与后台线程交互设计的5种方法

    我想关于这个话题已经有很多前辈讨论过了.今天算是一次学习总结吧. 在android的设计思想中,为了确保用户顺滑的操作体验.一 些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务.因此我们必 ...

  4. #Leet Code# Root to leaf

    语言:Python 描述:使用递归实现 def getList(self, node): if node is None: return [] if node.left is None and nod ...

  5. chmod 命令

    来源网址: http://www.2cto.com/os/201205/130236.html http://www.cnblogs.com/younes/archive/2009/11/20/160 ...

  6. c/c++的函数参数压栈顺序

    整理日:2015年3月18日 为了这句话丢了很多次人.无所谓了,反正咱脸皮厚. 总结一下 编译出来的c/c++程序的参数压栈顺序只和编译器相关! 下面列举了一些常见的编译器的调用约定 VC6 调用约定 ...

  7. 聊聊js运算符 ‘与(&&)’和‘ 或(||)’

    一,先来几个问题,看给位能都全部答对. var objA1 = {x:1}; var objA2 = {x:2}; var resultA = objA1 && objA2; //请问 ...

  8. Powerdesigner数据库建模--概念模型--ER图【转】

    转自http://www.cnblogs.com/dekevin/archive/2012/07/18/2596745.html Powerdesigner数据库建模--概念模型--ER图   目标: ...

  9. NEURAL NETWORKS, PART 3: THE NETWORK

    NEURAL NETWORKS, PART 3: THE NETWORK We have learned about individual neurons in the previous sectio ...

  10. -AC自动机-题表

    2016-07-13 09:59:42