Detect exact OS version from browser あたりとしてhttp://ellislab.com/codeigniter/user-guide/libraries/user_agent.html
を見てください短い答え:まったくできません。
長い答え:
あなたが持っているすべては、通常、OS名とバージョンが含まれているHTTP User-Agentヘッダ、内の情報です。
通常、Mac OSとLinuxで動作しているブラウザは、正確なOSを特定するのに十分な情報を送信します。たとえば、ここに私のUser-Agentヘッダです:
のMozilla/5.0(; U; Linuxのx86_64で、X11 EN-US; RV:1.9.0.7)のGecko/2009030423のUbuntu/8.10(勇敢)のFirefox/3.0。 7
私はUbuntu 8.10 Intrepid Ibexを実行していることがわかります。
そして、ここにはあります私のMacBook Proの上で何のFirefoxとSafari 4ベータ版のレポート:
のMozilla/5.0(Macintosh版; U;インテルのMac OS X 10.5; EN-US; RV:1.9.0.7)のGecko/2009021906 Firefoxの/ 3.0.7
のMozilla/5.0(Macintosh版; U;インテルのMac OS X 10_5_6; EN-US)のAppleWebKit/528.16(KHTML、ヤモリのような)バージョン/ 4.0のSafari/528.16
のWindows一方、ブラウザは通常、特定のパッケージではなくOSバージョンのみを報告します(Pro、ビジネスなど):
Mozilla/5。0(Windowsは、U; Windows NTの5.1; EN-US; RV:XXX)のGecko/20041107 Firefoxの/ XX
//これはあなた
$uagent = $_SERVER['HTTP_USER_AGENT'] . "<br/>";
function os_info($uagent)
{
// the order of this array is important
global $uagent;
$oses = array(
'Win311' => 'Win16',
'Win95' => '(Windows 95)|(Win95)|(Windows_95)',
'WinME' => '(Windows 98)|(Win 9x 4.90)|(Windows ME)',
'Win98' => '(Windows 98)|(Win98)',
'Win2000' => '(Windows NT 5.0)|(Windows 2000)',
'WinXP' => '(Windows NT 5.1)|(Windows XP)',
'WinServer2003' => '(Windows NT 5.2)',
'WinVista' => '(Windows NT 6.0)',
'Windows 7' => '(Windows NT 6.1)',
'Windows 8' => '(Windows NT 6.2)',
'WinNT' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
'OpenBSD' => 'OpenBSD',
'SunOS' => 'SunOS',
'Ubuntu' => 'Ubuntu',
'Android' => 'Android',
'Linux' => '(Linux)|(X11)',
'iPhone' => 'iPhone',
'iPad' => 'iPad',
'MacOS' => '(Mac_PowerPC)|(Macintosh)',
'QNX' => 'QNX',
'BeOS' => 'BeOS',
'OS2' => 'OS/2',
'SearchBot' => '(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)'
);
$uagent = strtolower($uagent ? $uagent : $_SERVER['HTTP_USER_AGENT']);
foreach ($oses as $os => $pattern)
if (preg_match('/' . $pattern . '/i', $uagent))
return $os;
return 'Unknown';
}
echo os_info($uagent);
ありがとうございました!これは完全に機能しました。 :) – totallyuneekname
ニースは助けてくれたことを知っています:) –
このコードは、すべてのiOSデバイスを、Mac OS Xのような "Mac OS X"を含むMacの原因として検出します。代わりに、 "Mac"ではなく "Macintosh"を確認する必要があります。 – kremalicious