2017-06-02 37 views
2

我想在PHP(Codeingiter)中获取访问者的操作系统。我试过https://github.com/serbanghita/Mobile-Detect。它在70%的时间内为我工作。但它仍然没有准确检测。移动设备或平板电脑未检测到大量Android流量。在PHP中确定访问者的操作系统

+0

使用PHP或JavaScript,您可以看到访问者的用户代理。在PHP中,您可以执行以下操作:$ _SERVER ['HTTP_USER_AGENT']。 –

+0

我试过一个图书馆也是这样做的。但没有得到... –

回答

3

没有准确的方法通过php或任何其他服务器语言检测操作系统。

这种检测通常依赖于浏览器代理,但它可能是假的,大部分时间都没有足够的信息。

+0

我做了1个实验。我把goo.gl网址,而不是我原来的网址。然后,我可以看到他们正在完美地跟踪操作系统,而无需使用Javascript –

+0

我根据设备类型将访问者重定向到外部网站。这些网站也检测到这些设备类型为移动,而没有JavaScript代码。 –

1

您必须添加检查如iPad和其他人,我错过了其他设备......

$hua = filter_input(INPUT_SERVER, 'HTTP_USER_AGENT'); 
$os = 'I have no idea...'; 

if(preg_match('/android/i', $hua)) { 
    $os = 'Android'; 
} elseif (preg_match('/linux/i', $hua)) { 
    $os = 'Linux'; 
} elseif (preg_match('/iphone/i', $hua)) { 
    $os = 'iPhone'; 
} elseif (preg_match('/macintosh|mac os x/i', $hua)) { 
    $os = 'Mac'; 
} elseif (preg_match('/windows|win32/i', $hua)) { 
    $os = 'Windows'; 
} 
echo $os; 
+0

亲爱的朋友,我之前和之后都用同样的方式来到图书馆。查看UA https://github.com/serbanghita/Mobile-Detect/issues/662。这一个是指Android操作系统。 –

+0

它不可能通过.htaccess来完成。我必须通过php页面本身重定向它们。由于重定向网址是动态的 –

0

用户代理类库CI中提供的功能来进行你的任务。 您可以在这里找到更多关于它们的详细信息: User Agent Class Library

具体查找platform()函数来检测访问者的操作系统。

+0

我在代码中使用了相同的...仍然通过传递......此外,这个库不是100%可信赖的。我可以看到这个图书馆没有正确地检测到bot流量。 –

相关问题