blob: b6c85631e116c51e743d1fa55d2b3e980e654b63 [file] [log] [blame]
darwineld8bef8a2014-02-11 20:13:22 +01001<?php
darwineld8bef8a2014-02-11 20:13:22 +01002defined('BASEPATH') OR exit('No direct script access allowed');
Derek Jonesf4a4bd82011-10-20 12:18:42 -05003
Derek Allard2067d1a2008-11-13 22:59:24 +00004/*
5| -------------------------------------------------------------------
6| USER AGENT TYPES
7| -------------------------------------------------------------------
Andrey Andreevd4901392012-06-06 14:54:15 +03008| This file contains four arrays of user agent data. It is used by the
Derek Allard2067d1a2008-11-13 22:59:24 +00009| User Agent Class to help identify browser, platform, robot, and
Andrey Andreevd4901392012-06-06 14:54:15 +030010| mobile device data. The array keys are used to identify the device
Derek Allard2067d1a2008-11-13 22:59:24 +000011| and the array values are used to set the actual name of the item.
Derek Allard2067d1a2008-11-13 22:59:24 +000012*/
Andrey Andreevca7d8222012-05-11 10:59:09 +030013$platforms = array(
Oleg Filippov0b2c8332015-03-14 17:10:02 +020014 'windows nt 10.0' => 'Windows 10',
Andre Gardiner303c7b22013-12-05 22:00:32 -050015 'windows nt 6.3' => 'Windows 8.1',
Debeet9defe902012-07-25 17:32:11 +030016 'windows nt 6.2' => 'Windows 8',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050017 'windows nt 6.1' => 'Windows 7',
18 'windows nt 6.0' => 'Windows Vista',
19 'windows nt 5.2' => 'Windows 2003',
20 'windows nt 5.1' => 'Windows XP',
21 'windows nt 5.0' => 'Windows 2000',
22 'windows nt 4.0' => 'Windows NT 4.0',
23 'winnt4.0' => 'Windows NT 4.0',
24 'winnt 4.0' => 'Windows NT',
25 'winnt' => 'Windows NT',
26 'windows 98' => 'Windows 98',
27 'win98' => 'Windows 98',
28 'windows 95' => 'Windows 95',
29 'win95' => 'Windows 95',
msegers335fed92013-08-14 10:46:25 +020030 'windows phone' => 'Windows Phone',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050031 'windows' => 'Unknown Windows OS',
Andrey Andreevca7d8222012-05-11 10:59:09 +030032 'android' => 'Android',
33 'blackberry' => 'BlackBerry',
34 'iphone' => 'iOS',
35 'ipad' => 'iOS',
36 'ipod' => 'iOS',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050037 'os x' => 'Mac OS X',
38 'ppc mac' => 'Power PC Mac',
39 'freebsd' => 'FreeBSD',
40 'ppc' => 'Macintosh',
41 'linux' => 'Linux',
42 'debian' => 'Debian',
43 'sunos' => 'Sun Solaris',
44 'beos' => 'BeOS',
45 'apachebench' => 'ApacheBench',
46 'aix' => 'AIX',
47 'irix' => 'Irix',
48 'osf' => 'DEC OSF',
49 'hp-ux' => 'HP-UX',
50 'netbsd' => 'NetBSD',
51 'bsdi' => 'BSDi',
52 'openbsd' => 'OpenBSD',
53 'gnu' => 'GNU/Linux',
Adriano Rosa1799cbf2014-05-07 22:37:03 -030054 'unix' => 'Unknown Unix OS',
55 'symbian' => 'Symbian OS'
Eric Barnes46fcf0b2011-11-12 12:42:14 -050056);
Derek Allard2067d1a2008-11-13 22:59:24 +000057
58
59// The order of this array should NOT be changed. Many browsers return
60// multiple browser types so we want to identify the sub-type first.
61$browsers = array(
Jcchemin02410502013-10-08 18:18:54 +020062 'OPR' => 'Opera',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050063 'Flock' => 'Flock',
Andrey Andreev641d4dd2018-04-13 13:26:27 +030064 'Edge' => 'Edge',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050065 'Chrome' => 'Chrome',
Andrey Andreev10925d22014-01-09 00:16:46 +020066 // Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
67 'Opera.*?Version' => 'Opera',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050068 'Opera' => 'Opera',
69 'MSIE' => 'Internet Explorer',
70 'Internet Explorer' => 'Internet Explorer',
Dionysis Arvanitis2cdd50e2014-01-15 16:24:15 +020071 'Trident.* rv' => 'Internet Explorer',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050072 'Shiira' => 'Shiira',
73 'Firefox' => 'Firefox',
74 'Chimera' => 'Chimera',
75 'Phoenix' => 'Phoenix',
76 'Firebird' => 'Firebird',
77 'Camino' => 'Camino',
78 'Netscape' => 'Netscape',
79 'OmniWeb' => 'OmniWeb',
80 'Safari' => 'Safari',
81 'Mozilla' => 'Mozilla',
82 'Konqueror' => 'Konqueror',
83 'icab' => 'iCab',
84 'Lynx' => 'Lynx',
85 'Links' => 'Links',
86 'hotjava' => 'HotJava',
87 'amaya' => 'Amaya',
Andrey Andreev3ffce982013-01-21 15:24:09 +020088 'IBrowse' => 'IBrowse',
vkeranovfdd14612013-11-08 09:19:29 +020089 'Maxthon' => 'Maxthon',
90 'Ubuntu' => 'Ubuntu Web Browser'
Eric Barnes46fcf0b2011-11-12 12:42:14 -050091);
Derek Allard2067d1a2008-11-13 22:59:24 +000092
93$mobiles = array(
Eric Barnes46fcf0b2011-11-12 12:42:14 -050094 // legacy array, old values commented out
95 'mobileexplorer' => 'Mobile Explorer',
96// 'openwave' => 'Open Wave',
97// 'opera mini' => 'Opera Mini',
98// 'operamini' => 'Opera Mini',
99// 'elaine' => 'Palm',
100 'palmsource' => 'Palm',
101// 'digital paths' => 'Palm',
102// 'avantgo' => 'Avantgo',
103// 'xiino' => 'Xiino',
104 'palmscape' => 'Palmscape',
105// 'nokia' => 'Nokia',
106// 'ericsson' => 'Ericsson',
107// 'blackberry' => 'BlackBerry',
108// 'motorola' => 'Motorola'
Derek Allard2067d1a2008-11-13 22:59:24 +0000109
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500110 // Phones and Manufacturers
Andrey Andreevca7d8222012-05-11 10:59:09 +0300111 'motorola' => 'Motorola',
112 'nokia' => 'Nokia',
113 'palm' => 'Palm',
114 'iphone' => 'Apple iPhone',
115 'ipad' => 'iPad',
116 'ipod' => 'Apple iPod Touch',
117 'sony' => 'Sony Ericsson',
118 'ericsson' => 'Sony Ericsson',
119 'blackberry' => 'BlackBerry',
120 'cocoon' => 'O2 Cocoon',
121 'blazer' => 'Treo',
122 'lg' => 'LG',
123 'amoi' => 'Amoi',
124 'xda' => 'XDA',
125 'mda' => 'MDA',
126 'vario' => 'Vario',
127 'htc' => 'HTC',
128 'samsung' => 'Samsung',
129 'sharp' => 'Sharp',
130 'sie-' => 'Siemens',
131 'alcatel' => 'Alcatel',
132 'benq' => 'BenQ',
133 'ipaq' => 'HP iPaq',
134 'mot-' => 'Motorola',
135 'playstation portable' => 'PlayStation Portable',
Debeet9defe902012-07-25 17:32:11 +0300136 'playstation 3' => 'PlayStation 3',
TheDragonSlayer2e746812013-03-30 09:50:27 -0300137 'playstation vita' => 'PlayStation Vita',
Andrey Andreevca7d8222012-05-11 10:59:09 +0300138 'hiptop' => 'Danger Hiptop',
139 'nec-' => 'NEC',
140 'panasonic' => 'Panasonic',
141 'philips' => 'Philips',
142 'sagem' => 'Sagem',
143 'sanyo' => 'Sanyo',
144 'spv' => 'SPV',
145 'zte' => 'ZTE',
146 'sendo' => 'Sendo',
Eric Roberts19d0f562012-08-11 19:53:59 -0500147 'nintendo dsi' => 'Nintendo DSi',
148 'nintendo ds' => 'Nintendo DS',
149 'nintendo 3ds' => 'Nintendo 3DS',
Andrey Andreevca7d8222012-05-11 10:59:09 +0300150 'wii' => 'Nintendo Wii',
Andrey Andreevca7d8222012-05-11 10:59:09 +0300151 'open web' => 'Open Web',
152 'openweb' => 'OpenWeb',
Bo-Yi Wuf22f8522011-11-12 15:23:04 +0800153
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500154 // Operating Systems
Andrey Andreevca7d8222012-05-11 10:59:09 +0300155 'android' => 'Android',
156 'symbian' => 'Symbian',
157 'SymbianOS' => 'SymbianOS',
158 'elaine' => 'Palm',
Andrey Andreevca7d8222012-05-11 10:59:09 +0300159 'series60' => 'Symbian S60',
160 'windows ce' => 'Windows CE',
Derek Allard2067d1a2008-11-13 22:59:24 +0000161
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500162 // Browsers
Andrey Andreevca7d8222012-05-11 10:59:09 +0300163 'obigo' => 'Obigo',
164 'netfront' => 'Netfront Browser',
165 'openwave' => 'Openwave Browser',
166 'mobilexplorer' => 'Mobile Explorer',
167 'operamini' => 'Opera Mini',
168 'opera mini' => 'Opera Mini',
169 'opera mobi' => 'Opera Mobile',
vlakoffc941d852013-08-06 14:44:40 +0200170 'fennec' => 'Firefox Mobile',
Derek Allard2067d1a2008-11-13 22:59:24 +0000171
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500172 // Other
Andrey Andreevca7d8222012-05-11 10:59:09 +0300173 'digital paths' => 'Digital Paths',
174 'avantgo' => 'AvantGo',
175 'xiino' => 'Xiino',
176 'novarra' => 'Novarra Transcoder',
177 'vodafone' => 'Vodafone',
178 'docomo' => 'NTT DoCoMo',
179 'o2' => 'O2',
Derek Allard2067d1a2008-11-13 22:59:24 +0000180
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500181 // Fallback
Andrey Andreevca7d8222012-05-11 10:59:09 +0300182 'mobile' => 'Generic Mobile',
183 'wireless' => 'Generic Mobile',
184 'j2me' => 'Generic Mobile',
185 'midp' => 'Generic Mobile',
186 'cldc' => 'Generic Mobile',
187 'up.link' => 'Generic Mobile',
188 'up.browser' => 'Generic Mobile',
189 'smartphone' => 'Generic Mobile',
190 'cellphone' => 'Generic Mobile'
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500191);
Derek Allard2067d1a2008-11-13 22:59:24 +0000192
193// There are hundreds of bots but these are the most common.
194$robots = array(
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500195 'googlebot' => 'Googlebot',
196 'msnbot' => 'MSNBot',
Jacques du Randcae7a402014-11-23 18:37:54 +0200197 'baiduspider' => 'Baiduspider',
Andrew Seymour00cfbd22011-11-12 21:18:07 +0000198 'bingbot' => 'Bing',
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500199 'slurp' => 'Inktomi Slurp',
200 'yahoo' => 'Yahoo',
rochefort73002ba2015-06-27 01:30:40 +0900201 'ask jeeves' => 'Ask Jeeves',
Jacques du Rand05033362014-11-23 18:34:20 +0200202 'fastcrawler' => 'FastCrawler',
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500203 'infoseek' => 'InfoSeek Robot 1.0',
Garth Kerr1bfc1152013-04-03 13:02:21 -0400204 'lycos' => 'Lycos',
Jacques du Rand538d5342014-11-23 11:35:22 +0200205 'yandex' => 'YandexBot',
Jacques du Rand70ba13a2014-11-23 09:18:03 +0200206 'mediapartners-google' => 'MediaPartners Google',
207 'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
208 'adsbot-google' => 'AdsBot Google',
209 'feedfetcher-google' => 'Feedfetcher Google',
Andrey Andreevc0d1b652016-05-25 18:12:46 +0300210 'curious george' => 'Curious George',
Andrey Andreevc6b01c82016-05-26 10:24:32 +0300211 'ia_archiver' => 'Alexa Crawler',
212 'MJ12bot' => 'Majestic-12',
213 'Uptimebot' => 'Uptimebot'
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500214);