User-Agent HTTP ヘッダー文字列 --> オペレーティング システムをマップする適切な最新のリストはありますか?
7 に答える
ここに簡単なリストがあります... 興味のあるものを見逃した場合はお知らせください.
http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-string.html :
// ユーザー エージェント文字列をオペレーティング システムと一致させる
Windows 3.11 => Win16,
Windows 95 => (Windows 95)|(Win95)|(Windows_95),
Windows 98 => (Windows 98)|(Win98),
Windows 2000 => ( Windows NT 5.0)|(Windows 2000)、
Windows XP => (Windows NT 5.1)|(Windows XP)、
Windows Server 2003 => (Windows NT 5.2)、
Windows Vista => (Windows NT 6.0)、
Windows 7 => (Windows NT 6.1)、
Windows 8 => (Windows NT 6.2)、
Windows 10 => (Windows NT 10.0)、
Windows NT 4.0 => (Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT )、
Windows ME => Windows ME、
Open BSD => OpenBSD、
Sun OS => SunOS、
Linux => (Linux)|(X11)、
Mac OS =>(Mac_PowerPC)|(Macintosh),
QNX => QNX,
BeOS => BeOS,
OS/2 => OS/2,
Search Bot=>(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves /テオマ)|(ia_archiver)
どの言語で開発していますか?これにより、ユーザーエージェント文字列でデータマイニングを実行する場合に利用できるものに大きな違いが生じます。
- PHPに
browser.php
は、ユーザーエージェントをOS、ブラウザ、およびブラウザのバージョンに解析する「」があります。- http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-string.html(警告:Win7はそうではあり
Windows NT 6.1
ませんWindows NT 7.0
)
- http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-string.html(警告:Win7はそうではあり
- Javascriptには、ユーザーのシステムに関する多くの詳細を含むNavigatorオブジェクトがあります
- .NETには、Win32またはWin16を判別するために使用できるHttpBrowserCapabilitiesオブジェクトと、ブラウザーの便利な機能があります。
- Zytrax.comには、生のユーザーエージェントが必要な場合に、さまざまなシステム上のさまざまなブラウザ用のユーザーエージェントの優れたデータベースもあります。
Nescioの回答は良いリストを提供します。私のリストのPHPの下にある2番目のリンクにも、基本的に同じ情報が含まれています。これは、任意の言語に翻訳できるほど単純です。
何かにユーザーエージェントを使用することは問題に満ちていることを覚えておいてください。開発時間の一部をサイトにアクセスするユーザーエージェントの監視と継続的なメンテナンスの実行に費やすつもりがない限り、それを完全に行わないようにする必要があります。OSを検出する必要があるユースケースに関係なく、すべてのプラットフォームのすべてのOSは、非常に短い時間枠で劇的な変化を起こす可能性があるため、これに注意し、OS検出を行う方法と理由に注意することが重要です。
リスクについて詳しく説明すると、デスクトップでは、新しいOSバージョンが6週間(Chrome OS)、6か月(Ubuntu)、1年(Mac OS)、または2〜3年(Windows)ごとにリリースされる可能性があります。次に、携帯電話、タブレット、ゲーム機、時計などでリリースされたOSについても考慮する必要があります。これらのOSは、リリースサイクルがはるかに頻繁になり、市場シェアが予測できないほど変化する可能性があります。ほんの数例を挙げると、BlackBerry、Palm OS、Web OS、iOS、Android、Windows Mobile、およびWindowsPhoneがここ数年で市場シェアをどのように変化させたかを見てください。
オペレーティングシステムがサイトの依存関係でない限り(アプリのターゲットを絞った「ダウンロード」ページを作成する場合など)(それ自体が問題に満ちている可能性があります)、ほとんどの場合、機能検出を使用することをお勧めします。ブラウザやOSの検出コードを常に維持することなく、開発を将来にわたって保証できます。
ユーザーエージェントのヘッダーは簡単に偽造される可能性があることに注意してください。重要なことは何も頼りにしない。
UAスニッフィングを行うことはほとんどの場合悪い考えです。あなたはそれをまったく信頼することはできません。
クライアントにその環境に固有の応答を送信する場合は、コンテンツタイプまたはエンコーディングとの違いを区別する必要があります。これらは堅実に指定されています。
ブラウザからのユーザーエージェントは、私が何のためにも頼りにするものではありません。私たちは皆、統計のためにそれを使用しますが、100%正確ではないことを知っています。
私はFirefoxを使用しており、それを好まないサイトでは定期的にIEを偽装しています。私の通常のUAは次のとおりです。
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3)
Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.3
私は時々Firefox拡張機能を使用して次のように変更します。
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MS-RTC LM 8;
.NET CLR 2.0.50727; .NET CLR 1.1.4322)
あなたがそれを見ているとき、あなたは異なる部分を解析する必要があるでしょう、OSは括弧の間のセミコロンで区切られた値の3番目の部分です。
私は同じものを探していました、そして見つけました:
http ://www.useragentstring.com
すばらしいですが、非常に手の込んだものです。これは「物事を視野に入れている」ため、リストが必要なプロジェクトを再考することをお勧めします。
これを研究している将来の人々のためにこれを共有したかっただけです。
現在、 http://user-agent-string.infoからデータベースをお勧めできます。User-Agent とオペレーティング システム (利用可能な場合) を特定できます。
私は Java ライブラリUADetectorを開発しており、XML および INI 形式で利用できる新しいバージョンのデータベース (別名 UAS ファイル) を毎月マージしています。したがって、私の経験から、このデータは最新に保たれていると言えます。通常の更新間隔は 5 ~ 10 日です。