Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
UserAgents
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
1<?php
2
3namespace Config;
4
5use CodeIgniter\Config\BaseConfig;
6
7/**
8 * -------------------------------------------------------------------
9 * User Agents
10 * -------------------------------------------------------------------
11 *
12 * This file contains four arrays of user agent data. It is used by the
13 * User Agent Class to help identify browser, platform, robot, and
14 * mobile device data. The array keys are used to identify the device
15 * and the array values are used to set the actual name of the item.
16 */
17class UserAgents extends BaseConfig
18{
19    /**
20     * -------------------------------------------------------------------
21     * OS Platforms
22     * -------------------------------------------------------------------
23     *
24     * @var array<string, string>
25     */
26    public array $platforms = [
27        'windows nt 10.0' => 'Windows 10',
28        'windows nt 6.3'  => 'Windows 8.1',
29        'windows nt 6.2'  => 'Windows 8',
30        'windows nt 6.1'  => 'Windows 7',
31        'windows nt 6.0'  => 'Windows Vista',
32        'windows nt 5.2'  => 'Windows 2003',
33        'windows nt 5.1'  => 'Windows XP',
34        'windows nt 5.0'  => 'Windows 2000',
35        'windows nt 4.0'  => 'Windows NT 4.0',
36        'winnt4.0'        => 'Windows NT 4.0',
37        'winnt 4.0'       => 'Windows NT',
38        'winnt'           => 'Windows NT',
39        'windows 98'      => 'Windows 98',
40        'win98'           => 'Windows 98',
41        'windows 95'      => 'Windows 95',
42        'win95'           => 'Windows 95',
43        'windows phone'   => 'Windows Phone',
44        'windows'         => 'Unknown Windows OS',
45        'android'         => 'Android',
46        'blackberry'      => 'BlackBerry',
47        'iphone'          => 'iOS',
48        'ipad'            => 'iOS',
49        'ipod'            => 'iOS',
50        'os x'            => 'Mac OS X',
51        'ppc mac'         => 'Power PC Mac',
52        'freebsd'         => 'FreeBSD',
53        'ppc'             => 'Macintosh',
54        'linux'           => 'Linux',
55        'debian'          => 'Debian',
56        'sunos'           => 'Sun Solaris',
57        'beos'            => 'BeOS',
58        'apachebench'     => 'ApacheBench',
59        'aix'             => 'AIX',
60        'irix'            => 'Irix',
61        'osf'             => 'DEC OSF',
62        'hp-ux'           => 'HP-UX',
63        'netbsd'          => 'NetBSD',
64        'bsdi'            => 'BSDi',
65        'openbsd'         => 'OpenBSD',
66        'gnu'             => 'GNU/Linux',
67        'unix'            => 'Unknown Unix OS',
68        'symbian'         => 'Symbian OS',
69    ];
70
71    /**
72     * -------------------------------------------------------------------
73     * Browsers
74     * -------------------------------------------------------------------
75     *
76     * The order of this array should NOT be changed. Many browsers return
77     * multiple browser types so we want to identify the subtype first.
78     *
79     * @var array<string, string>
80     */
81    public array $browsers = [
82        'OPR'    => 'Opera',
83        'Flock'  => 'Flock',
84        'Edge'   => 'Spartan',
85        'Edg'    => 'Edge',
86        'Chrome' => 'Chrome',
87        // Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
88        'Opera.*?Version'   => 'Opera',
89        'Opera'             => 'Opera',
90        'MSIE'              => 'Internet Explorer',
91        'Internet Explorer' => 'Internet Explorer',
92        'Trident.* rv'      => 'Internet Explorer',
93        'Shiira'            => 'Shiira',
94        'Firefox'           => 'Firefox',
95        'Chimera'           => 'Chimera',
96        'Phoenix'           => 'Phoenix',
97        'Firebird'          => 'Firebird',
98        'Camino'            => 'Camino',
99        'Netscape'          => 'Netscape',
100        'OmniWeb'           => 'OmniWeb',
101        'Safari'            => 'Safari',
102        'Mozilla'           => 'Mozilla',
103        'Konqueror'         => 'Konqueror',
104        'icab'              => 'iCab',
105        'Lynx'              => 'Lynx',
106        'Links'             => 'Links',
107        'hotjava'           => 'HotJava',
108        'amaya'             => 'Amaya',
109        'IBrowse'           => 'IBrowse',
110        'Maxthon'           => 'Maxthon',
111        'Ubuntu'            => 'Ubuntu Web Browser',
112        'Vivaldi'           => 'Vivaldi',
113    ];
114
115    /**
116     * -------------------------------------------------------------------
117     * Mobiles
118     * -------------------------------------------------------------------
119     *
120     * @var array<string, string>
121     */
122    public array $mobiles = [
123        // legacy array, old values commented out
124        'mobileexplorer' => 'Mobile Explorer',
125        // 'openwave'             => 'Open Wave',
126        // 'opera mini'           => 'Opera Mini',
127        // 'operamini'            => 'Opera Mini',
128        // 'elaine'               => 'Palm',
129        'palmsource' => 'Palm',
130        // 'digital paths'        => 'Palm',
131        // 'avantgo'              => 'Avantgo',
132        // 'xiino'                => 'Xiino',
133        'palmscape' => 'Palmscape',
134        // 'nokia'                => 'Nokia',
135        // 'ericsson'             => 'Ericsson',
136        // 'blackberry'           => 'BlackBerry',
137        // 'motorola'             => 'Motorola'
138
139        // Phones and Manufacturers
140        'motorola'             => 'Motorola',
141        'nokia'                => 'Nokia',
142        'palm'                 => 'Palm',
143        'iphone'               => 'Apple iPhone',
144        'ipad'                 => 'iPad',
145        'ipod'                 => 'Apple iPod Touch',
146        'sony'                 => 'Sony Ericsson',
147        'ericsson'             => 'Sony Ericsson',
148        'blackberry'           => 'BlackBerry',
149        'cocoon'               => 'O2 Cocoon',
150        'blazer'               => 'Treo',
151        'lg'                   => 'LG',
152        'amoi'                 => 'Amoi',
153        'xda'                  => 'XDA',
154        'mda'                  => 'MDA',
155        'vario'                => 'Vario',
156        'htc'                  => 'HTC',
157        'samsung'              => 'Samsung',
158        'sharp'                => 'Sharp',
159        'sie-'                 => 'Siemens',
160        'alcatel'              => 'Alcatel',
161        'benq'                 => 'BenQ',
162        'ipaq'                 => 'HP iPaq',
163        'mot-'                 => 'Motorola',
164        'playstation portable' => 'PlayStation Portable',
165        'playstation 3'        => 'PlayStation 3',
166        'playstation vita'     => 'PlayStation Vita',
167        'hiptop'               => 'Danger Hiptop',
168        'nec-'                 => 'NEC',
169        'panasonic'            => 'Panasonic',
170        'philips'              => 'Philips',
171        'sagem'                => 'Sagem',
172        'sanyo'                => 'Sanyo',
173        'spv'                  => 'SPV',
174        'zte'                  => 'ZTE',
175        'sendo'                => 'Sendo',
176        'nintendo dsi'         => 'Nintendo DSi',
177        'nintendo ds'          => 'Nintendo DS',
178        'nintendo 3ds'         => 'Nintendo 3DS',
179        'wii'                  => 'Nintendo Wii',
180        'open web'             => 'Open Web',
181        'openweb'              => 'OpenWeb',
182
183        // Operating Systems
184        'android'    => 'Android',
185        'symbian'    => 'Symbian',
186        'SymbianOS'  => 'SymbianOS',
187        'elaine'     => 'Palm',
188        'series60'   => 'Symbian S60',
189        'windows ce' => 'Windows CE',
190
191        // Browsers
192        'obigo'         => 'Obigo',
193        'netfront'      => 'Netfront Browser',
194        'openwave'      => 'Openwave Browser',
195        'mobilexplorer' => 'Mobile Explorer',
196        'operamini'     => 'Opera Mini',
197        'opera mini'    => 'Opera Mini',
198        'opera mobi'    => 'Opera Mobile',
199        'fennec'        => 'Firefox Mobile',
200
201        // Other
202        'digital paths' => 'Digital Paths',
203        'avantgo'       => 'AvantGo',
204        'xiino'         => 'Xiino',
205        'novarra'       => 'Novarra Transcoder',
206        'vodafone'      => 'Vodafone',
207        'docomo'        => 'NTT DoCoMo',
208        'o2'            => 'O2',
209
210        // Fallback
211        'mobile'     => 'Generic Mobile',
212        'wireless'   => 'Generic Mobile',
213        'j2me'       => 'Generic Mobile',
214        'midp'       => 'Generic Mobile',
215        'cldc'       => 'Generic Mobile',
216        'up.link'    => 'Generic Mobile',
217        'up.browser' => 'Generic Mobile',
218        'smartphone' => 'Generic Mobile',
219        'cellphone'  => 'Generic Mobile',
220    ];
221
222    /**
223     * -------------------------------------------------------------------
224     * Robots
225     * -------------------------------------------------------------------
226     *
227     * There are hundred of bots but these are the most common.
228     *
229     * @var array<string, string>
230     */
231    public array $robots = [
232        'googlebot'            => 'Googlebot',
233        'google-pagerenderer'  => 'Google Page Renderer',
234        'google-read-aloud'    => 'Google Read Aloud',
235        'google-safety'        => 'Google Safety Bot',
236        'msnbot'               => 'MSNBot',
237        'baiduspider'          => 'Baiduspider',
238        'bingbot'              => 'Bing',
239        'bingpreview'          => 'BingPreview',
240        'slurp'                => 'Inktomi Slurp',
241        'yahoo'                => 'Yahoo',
242        'ask jeeves'           => 'Ask Jeeves',
243        'fastcrawler'          => 'FastCrawler',
244        'infoseek'             => 'InfoSeek Robot 1.0',
245        'lycos'                => 'Lycos',
246        'yandex'               => 'YandexBot',
247        'mediapartners-google' => 'MediaPartners Google',
248        'CRAZYWEBCRAWLER'      => 'Crazy Webcrawler',
249        'adsbot-google'        => 'AdsBot Google',
250        'feedfetcher-google'   => 'Feedfetcher Google',
251        'curious george'       => 'Curious George',
252        'ia_archiver'          => 'Alexa Crawler',
253        'MJ12bot'              => 'Majestic-12',
254        'Uptimebot'            => 'Uptimebot',
255        'duckduckbot'          => 'DuckDuckBot',
256        'sogou'                => 'Sogou Spider',
257        'exabot'               => 'Exabot',
258        'bot'                  => 'Generic Bot',
259        'crawler'              => 'Generic Crawler',
260        'spider'               => 'Generic Spider',
261    ];
262}