Javascript 获取用户操作系统和版本号

Javascript 获取用户操作系统和版本号,javascript,php,os-detection,Javascript,Php,Os Detection,为此,我花了一天的时间断断续续地在谷歌上搜索;到目前为止运气不好 如何获取用户的操作系统和版本。我的是Mac OS X 10.6.4,办公室里的备用电脑是Windows XP SP3。你明白我的意思了 我已经看到了无数种方法来单独获取用户平台,而不是版本 JS是理想的,但是服务器端(PHP)解决方案也可以。您将看到的所有服务器端解决方案都可以归结为在请求中使用用户代理字符串 在客户端(JS)上完成工作的好处是能够直接与浏览器/操作系统交互。例如,-这可能正是您所需要的-在DOM/浏览器上运行一系

为此,我花了一天的时间断断续续地在谷歌上搜索;到目前为止运气不好

如何获取用户的操作系统和版本。我的是Mac OS X 10.6.4,办公室里的备用电脑是Windows XP SP3。你明白我的意思了

我已经看到了无数种方法来单独获取用户平台,而不是版本


JS是理想的,但是服务器端(PHP)解决方案也可以。

您将看到的所有服务器端解决方案都可以归结为在请求中使用用户代理字符串

在客户端(JS)上完成工作的好处是能够直接与浏览器/操作系统交互。例如,-这可能正是您所需要的-在DOM/浏览器上运行一系列测试以查看其反应,然后根据这些反应确定浏览器类型和版本。有一些项目扩展了jQuery的浏览器功能,包括操作系统检测,但我以前没有使用过它们;通过快速的谷歌搜索很容易找到


干杯。

除了进行网络探测(无论如何都不太可靠)之外,您得到的唯一提示是检查用户代理标头,但您也不能过分依赖它,因为任何人都可以修改其浏览器发送的默认标头

下面的链接底部似乎有javascript代码来检测操作系统。作为奖励,它还具有一些其他功能,如浏览器类型和版本检测


HTH

中签出r函数您可以使用$\u服务器阵列中的HTTP\u USER\u代理字段。例如,以下代码将检测iPhone和Android用户,并将他们重定向到其他位置(例如iTunes应用商店或Android Marketplace):

请注意,ANDROID\u重定向、IOS\u重定向和默认\u重定向是使用定义的常量。



记住,永远不要相信客户的任何东西。因此,即使您“检测到”OS X 10.6.4,您也不知道这是否正确……不幸的是,我们服务器上的browscap.ini文件(实际上两个专用框)不够新=/在我的Mac上,“navigator.oscpu”返回“Intel Mac OS X 10.6”,在PC上,它不返回任何内容。羞耻,因为这正是我想要的!浏览器会因为Chrome而失败,不是吗?Chrome的用户代理上同时有“Safari”和“Chrome”。例如:
Mozilla/5.0(windowsnt 6.1)AppleWebKit/537.36(KHTML,像Gecko)Chrome/31.0.1625.2 Safari/537.36
@Gaurang这个脚本确实帮助了我。关于它的一个问题:我使用OSX小牛,它返回“未知操作系统平台”。我知道这个答案已经有7年了,但是如果你接受用户代理作为一个函数变量,而不是将其指定为一个全局变量,那么它可以为任何用户代理返回它,这不是更好吗。或者在函数中使用$\u服务器变量,因为它已经是一个全局变量了?
$http_user_agent = $_SERVER['HTTP_USER_AGENT'];

if (stristr($http_user_agent, "android") != FALSE) {
  header("Location: " . ANDROID_REDIRECT);
}
else if (stristr($http_user_agent, "iphone") != FALSE) {
  header("Location: " . IOS_REDIRECT);
}
else {
  header("Location: " . DEFAULT_REDIRECT);
}
<?php

$user_agent     =   $_SERVER['HTTP_USER_AGENT'];

function getOS() { 

global $user_agent;

$os_platform    =   "Unknown OS Platform";

$os_array       =   array(
    '/windows nt 10.0/i'    =>  'Windows 10',
    '/windows nt 6.2/i'     =>  'Windows 8',
    '/windows nt 6.1/i'     =>  'Windows 7',
    '/windows nt 6.0/i'     =>  'Windows Vista',
    '/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
    '/windows nt 5.1/i'     =>  'Windows XP',
    '/windows xp/i'         =>  'Windows XP',
    '/windows nt 5.0/i'     =>  'Windows 2000',
    '/windows me/i'         =>  'Windows ME',
    '/win98/i'              =>  'Windows 98',
    '/win95/i'              =>  'Windows 95',
    '/win16/i'              =>  'Windows 3.11',
    '/macintosh|mac os x/i' =>  'Mac OS X',
    '/mac_powerpc/i'        =>  'Mac OS 9',
    '/linux/i'              =>  'Linux',
    '/ubuntu/i'             =>  'Ubuntu',
    '/iphone/i'             =>  'iPhone',
    '/ipod/i'               =>  'iPod',
    '/ipad/i'               =>  'iPad',
    '/android/i'            =>  'Android',
    '/blackberry/i'         =>  'BlackBerry',
    '/webos/i'              =>  'Mobile'
);

foreach ($os_array as $regex => $value) { 

if (preg_match($regex, $user_agent)) {
$os_platform    =   $value;
}

}   

return $os_platform;

}

function getBrowser() {

global $user_agent;

$browser        =   "Unknown Browser";

$browser_array  =   array(
    '/msie/i'       =>  'Internet Explorer',
    '/firefox/i'    =>  'Firefox',
    '/safari/i'     =>  'Safari',
    '/chrome/i'     =>  'Chrome',
    '/opera/i'      =>  'Opera',
    '/netscape/i'   =>  'Netscape',
    '/maxthon/i'    =>  'Maxthon',
    '/konqueror/i'  =>  'Konqueror',
    '/mobile/i'     =>  'Handheld Browser'
);

foreach ($browser_array as $regex => $value) { 

if (preg_match($regex, $user_agent)) {
$browser    =   $value;
}

}

return $browser;

}


$user_os        =   getOS();
$user_browser   =   getBrowser();

$device_details =   "<strong>Browser: </strong>".$user_browser."<br /><strong>Operating System: </strong>".$user_os."";

print_r($device_details);

echo("<br /><br /><br />".$_SERVER['HTTP_USER_AGENT']."");

?>