2017-06-02 8 views
2

私はPHP(Codeingiter)で訪問者のOSを取得しようとしています。私はhttps://github.com/serbanghita/Mobile-Detectを試しました。それは私のために時間の70%働いた。しかしそれでも正確には検出されません。モバイルトラフィックやタブレット広告では、大量のAndroidトラフィックは検出されません。PHPでビジターのOSを確認する

+0

PHPまたはjavascriptを使用すると、訪問ユーザーのユーザーエージェントが表示されます。 PHPでは、次のことができます:$ _SERVER ['HTTP_USER_AGENT']。 –

+0

私はそのライブラリでも同じことをやってみました。しかし、... –

答えて

3

オペレーティングシステムをPHPやその他のサーバー言語で検出する正確な方法はありません。

この種の検出は、通常、ブラウザエージェントに依存しますが、偽装され、ほとんどの場合、十分な情報がありません。 CodeIgniterの中のあなたは、私が逃したiPadや他のような他のデバイスのためのチェックを追加する必要が

+0

私は1回の実験を行いました。私は元のURLの代わりにgoo.glのURLを入れました。それから私は彼らがJavascriptなしでOSを完全に追跡しているのを見ることができます –

+0

私は外部のウェブサイトにデバイスの種類に応じて訪問者をリダイレクトしています。これらのウェブサイトは、javascriptコードを持たずにこれらのデバイスタイプをモバイルとしても検出します。 –

1

...

$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 OSを指します。 –

+0

私が.htaccess経由で行うことは不可能です。私はPHPページ自体を介してそれらをリダイレクトする必要があります。リダイレクトURLは動的なので、 –

0

ユーザエージェントクラスライブラリは、あなたのタスクを実行するための機能を提供します。 詳細については、 User Agent Class Library

などがあります。具体的には、訪問者のOSを検出するplatform()関数を探します。

+0

私はコード内で同じものを使用しました...まだそれを渡すことによって...そしてさらにこのライブラリは100%信頼できるものではありません。私はボットのトラフィックがこのライブラリによってうまく検出されていないことがわかります。 –

関連する問題