読者です 読者をやめる 読者になる 読者になる

Browser

Microsoft Edge(Project Spartan, Internet Explorer) 、ブラウザ周辺、Web フロントエンド開発、UI、など

Microsoft Edge まとめページ

Microsoft Edge の User Agent - 2015/08/13 版

Windows Windows Phone 開発 Microsoft Edge IE11 Firefox Chrome Safari Android iOS

Microsoft Edge のユーザーエージェントはいろいろな情報を出しすぎて面白いことになってますね。
Windows 10 Insider Preview のころから言われていますし、もうそろそろ対応する必要が出てきていると思われます。
下記の通り、"AppleWebKit" "Chrome" "Safari" 等の文字が入っているのがわかると思われます。
そのためか、既存の JavaScript のライブラリで不具合を起こすものがあったり、
ページ表示に User Agent の判別、分岐がうまくできてないものもあります。

 

 

64bit と 32bit 版で若干表示がことなる

64bit

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240

32bit

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240

 

Edge、IE 11 の詳しい情報は MSDN に

ユーザー エージェント文字列の変更 (Windows)

 

主なブラウザの User Agent も調べてみた

2015月8月13日 時点で最新のものを調べてみました。
のっぴきならない理由で iOS だけはバージョンが古いです。

Windows 10
Internet Explorer 11 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; rv:11.0) like Gecko
Microsoft Edge Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240
Chrome Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
Firefox Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
 
Mac
Safari Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12
Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
Firefox Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:40.0) Gecko/20100101 Firefox/40.0
 
Mobile
Android Chrome
(Nexus5)
Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36
iOS 8.1.3
(iPad mini)
Mozilla/5.0 (iPad; CPU OS 8_1_3 Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4
Microsoft Edge
(Lumia 1520)
Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; NOKIA; Lumia 1520) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10512

 

特徴を調べてみる

文字の区切りで分けてみました。

 Windows 10MacMobile
ブラウザIE11EdgeChromeFirefoxSafariChromeFirefoxAndroid ChromeiOS (8.1.3)Edge
Mozilla Ver. Mozilla/5.0 Mozilla/5.0 Mozilla/5.0 Mozilla/5.0 Mozilla/5.0 Mozilla/5.0 Mozilla/5.0 Mozilla/5.0 Mozilla/5.0 Mozilla/5.0
OS1 Windows NT 10.0; Windows NT 10.0; Windows NT 10.0; Windows NT 10.0; Macintosh; Macintosh; Macintosh; Linux; iPad; Windows Phone 10.0;
OS2 Win64; Win64; Win64; WOW64; Intel Mac OS X 10_10_4 Intel Mac OS X 10_10_4 Intel Mac OS X 10.10; Android 5.1.1; CPU OS 8_1_3 Mac OS X Android 4.2.1;
CPU   x64 x64              
レンダリングエンジン1 Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729;                  
バージョン1 rv:11.0     rv:40.0     rv:40.0      
デバイス名               Nexus 5 Build/LMY48I   NOKIA; Lumia 1520
レンダリングエンジン2   AppleWebKit/537.36 AppleWebKit/537.36 Gecko/20100101 AppleWebKit/600.7.12 AppleWebKit/537.36 Gecko/20100101 AppleWebKit/537.36 AppleWebKit/600.1.4 AppleWebKit/537.36
レンダリングエンジン3 like Gecko (KHTML, like Gecko) (KHTML, like Gecko)   (KHTML, like Gecko) (KHTML, like Gecko)   (KHTML, like Gecko) (KHTML, like Gecko) (KHTML, like Gecko)
バージョン2         Version/8.0.7       Version/8.0  
Chrome   Chrome/42.0.2311.135 Chrome/44.0.2403.130     Chrome/44.0.2403.130   Chrome/44.0.2403.133   Chrome/42.0.2311.135
Safari   Safari/537.36 Safari/537.36   Safari/600.7.12 Safari/537.36   Mobile Safari/537.36 Mobile/12B466 Safari/600.1.4 Mobile Safari/537.36
Edge   Edge/12.10240               Edge/12.10512
Firefox       Firefox/40.0     Firefox/40.0      

 

表をまとめると

  • 全てで、「Mozilla/5.0」 と 「like Gecko」 の文字がある
  • Windows の環境では「Windows」、Mac の環境では「Macintosh」の文字がある。
  • IE 11 と Firefox を除くと「AppleWebKit」「(KHTML, like Gecko)」 の文字がある
  • IE 11 は Trident と .NET、CLR の文字がある
  • IE 11 は rv のあとにブラウザバージョンの文字がある
  • Firefox は rv のあとにもブラウザバージョンの文字がある
  • Firefox のみ Firefox の文字がある
  • Firefox は OS の部分が変更されるだけで非常にシンプルな UA を返す
  • Safari はブラウザバージョンの文字がある
  • iOS の Safari では「Chrome」の文字があるが、Mac OSX の方には存在しない。
  • Windows 10 Mobile の Edge でも「Android」や「Mobile Safari」の文字がある
  • モバイルの Android や Edge では「Mobile Safari」という文字があるが、iOSは「Mobile/*** Safari/***」 という表記になっている
  • モバイルの Android や Edge などでデバイス名が表示される

 


User Agent からブラウザを判別する

これらを考えると、以下の文字が見つかれば各条件に振り分けられそうです。
Edge に「Safari」と「Chrome」の文字が入った為、Safari や Chrome だけの判別をしたい場合は要注意です。

 

Windows/Mac

OS 名 「Windows」か「Macintosh」で調べる

 

モバイル

「Mobile」という文字がみつかればモバイル端末と判別できそう。

 

IE 11

「Trident」か「.NET」か「CLR」のいずれかの文字がみつかれば判別できそう。

 

Edge

「Edge」という文字がみつかれば Edge と判別できそう。
Windows 10 Mobie も「Edge」がつくため、Windows 10 Mobie の Edge が知りたい場合は「Mobile」という文字も調べる。
OS 名でも大丈夫で「Windows Phone」と「Android」の文字を持つ

 

Firefox

「Firefox」という文字がみつかれば Firefox と判別できそう。

上の表にはありませんが、Android の場合は「Mobile」という文字も調べる。

 

Safari

「Safari」という文字をみつけて「Edge」という文字がなければ Safari と判別できそう。
「Version」 という文字も Safari にしかないのでこれでもできそう。
iOS の場合は上ものに加え「Mobie」を調べればよいが、旧来通り OS 名のみ調べた方が楽。

 

Chrome

「Chrome」という文字をみつけて「Edge」「Safari」という文字がなければ Chrome と判別できそう。
Android の Chrome を知りたい場合は「Mobile」という文字も調べる。
Windows 10 Mobie の Edge も「Android」の文字を持つため OS 名では調べられない。

 

User Agent はユーザー側から変更できますし、個人的には User Agent を見て表示できるコンテンツを振り分けること自体良くないと感じています。
全てのブラウザで同じコンテンツを表示できることが理想なんですが現実は厳しいです。

 

まとめ

Chrome、Safari と Windows 10 Mobile で Android の 文字列を入れたのは、ちょっとやりすぎかなと思っています。

スポンサーリンク