blob: fd8ed48cd8364613c9d13ff2b8ee014e23a691e2 [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*/
13
Andrey Andreevca7d8222012-05-11 10:59:09 +030014$platforms = array(
Oleg Filippov0b2c8332015-03-14 17:10:02 +020015 'windows nt 10.0' => 'Windows 10',
Andre Gardiner303c7b22013-12-05 22:00:32 -050016 'windows nt 6.3' => 'Windows 8.1',
Debeet9defe902012-07-25 17:32:11 +030017 'windows nt 6.2' => 'Windows 8',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050018 'windows nt 6.1' => 'Windows 7',
19 'windows nt 6.0' => 'Windows Vista',
20 'windows nt 5.2' => 'Windows 2003',
21 'windows nt 5.1' => 'Windows XP',
22 'windows nt 5.0' => 'Windows 2000',
23 'windows nt 4.0' => 'Windows NT 4.0',
24 'winnt4.0' => 'Windows NT 4.0',
25 'winnt 4.0' => 'Windows NT',
26 'winnt' => 'Windows NT',
27 'windows 98' => 'Windows 98',
28 'win98' => 'Windows 98',
29 'windows 95' => 'Windows 95',
30 'win95' => 'Windows 95',
msegers335fed92013-08-14 10:46:25 +020031 'windows phone' => 'Windows Phone',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050032 'windows' => 'Unknown Windows OS',
Andrey Andreevca7d8222012-05-11 10:59:09 +030033 'android' => 'Android',
34 'blackberry' => 'BlackBerry',
35 'iphone' => 'iOS',
36 'ipad' => 'iOS',
37 'ipod' => 'iOS',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050038 'os x' => 'Mac OS X',
39 'ppc mac' => 'Power PC Mac',
40 'freebsd' => 'FreeBSD',
41 'ppc' => 'Macintosh',
42 'linux' => 'Linux',
43 'debian' => 'Debian',
44 'sunos' => 'Sun Solaris',
45 'beos' => 'BeOS',
46 'apachebench' => 'ApacheBench',
47 'aix' => 'AIX',
48 'irix' => 'Irix',
49 'osf' => 'DEC OSF',
50 'hp-ux' => 'HP-UX',
51 'netbsd' => 'NetBSD',
52 'bsdi' => 'BSDi',
53 'openbsd' => 'OpenBSD',
54 'gnu' => 'GNU/Linux',
Adriano Rosa1799cbf2014-05-07 22:37:03 -030055 'unix' => 'Unknown Unix OS',
56 'symbian' => 'Symbian OS'
Eric Barnes46fcf0b2011-11-12 12:42:14 -050057);
Derek Allard2067d1a2008-11-13 22:59:24 +000058
59
60// The order of this array should NOT be changed. Many browsers return
61// multiple browser types so we want to identify the sub-type first.
62$browsers = array(
Jcchemin02410502013-10-08 18:18:54 +020063 'OPR' => 'Opera',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050064 'Flock' => 'Flock',
Oleg Filippova5e58eb2015-05-06 18:09:03 +030065 'Edge' => 'Spartan',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050066 'Chrome' => 'Chrome',
Andrey Andreev10925d22014-01-09 00:16:46 +020067 // Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
68 'Opera.*?Version' => 'Opera',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050069 'Opera' => 'Opera',
70 'MSIE' => 'Internet Explorer',
71 'Internet Explorer' => 'Internet Explorer',
Dionysis Arvanitis2cdd50e2014-01-15 16:24:15 +020072 'Trident.* rv' => 'Internet Explorer',
Eric Barnes46fcf0b2011-11-12 12:42:14 -050073 'Shiira' => 'Shiira',
74 'Firefox' => 'Firefox',
75 'Chimera' => 'Chimera',
76 'Phoenix' => 'Phoenix',
77 'Firebird' => 'Firebird',
78 'Camino' => 'Camino',
79 'Netscape' => 'Netscape',
80 'OmniWeb' => 'OmniWeb',
81 'Safari' => 'Safari',
82 'Mozilla' => 'Mozilla',
83 'Konqueror' => 'Konqueror',
84 'icab' => 'iCab',
85 'Lynx' => 'Lynx',
86 'Links' => 'Links',
87 'hotjava' => 'HotJava',
88 'amaya' => 'Amaya',
Andrey Andreev3ffce982013-01-21 15:24:09 +020089 'IBrowse' => 'IBrowse',
vkeranovfdd14612013-11-08 09:19:29 +020090 'Maxthon' => 'Maxthon',
91 'Ubuntu' => 'Ubuntu Web Browser'
Eric Barnes46fcf0b2011-11-12 12:42:14 -050092);
Derek Allard2067d1a2008-11-13 22:59:24 +000093
94$mobiles = array(
Eric Barnes46fcf0b2011-11-12 12:42:14 -050095 // legacy array, old values commented out
96 'mobileexplorer' => 'Mobile Explorer',
97// 'openwave' => 'Open Wave',
98// 'opera mini' => 'Opera Mini',
99// 'operamini' => 'Opera Mini',
100// 'elaine' => 'Palm',
101 'palmsource' => 'Palm',
102// 'digital paths' => 'Palm',
103// 'avantgo' => 'Avantgo',
104// 'xiino' => 'Xiino',
105 'palmscape' => 'Palmscape',
106// 'nokia' => 'Nokia',
107// 'ericsson' => 'Ericsson',
108// 'blackberry' => 'BlackBerry',
109// 'motorola' => 'Motorola'
Derek Allard2067d1a2008-11-13 22:59:24 +0000110
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500111 // Phones and Manufacturers
Andrey Andreevca7d8222012-05-11 10:59:09 +0300112 'motorola' => 'Motorola',
113 'nokia' => 'Nokia',
114 'palm' => 'Palm',
115 'iphone' => 'Apple iPhone',
116 'ipad' => 'iPad',
117 'ipod' => 'Apple iPod Touch',
118 'sony' => 'Sony Ericsson',
119 'ericsson' => 'Sony Ericsson',
120 'blackberry' => 'BlackBerry',
121 'cocoon' => 'O2 Cocoon',
122 'blazer' => 'Treo',
123 'lg' => 'LG',
124 'amoi' => 'Amoi',
125 'xda' => 'XDA',
126 'mda' => 'MDA',
127 'vario' => 'Vario',
128 'htc' => 'HTC',
129 'samsung' => 'Samsung',
130 'sharp' => 'Sharp',
131 'sie-' => 'Siemens',
132 'alcatel' => 'Alcatel',
133 'benq' => 'BenQ',
134 'ipaq' => 'HP iPaq',
135 'mot-' => 'Motorola',
136 'playstation portable' => 'PlayStation Portable',
Debeet9defe902012-07-25 17:32:11 +0300137 'playstation 3' => 'PlayStation 3',
TheDragonSlayer2e746812013-03-30 09:50:27 -0300138 'playstation vita' => 'PlayStation Vita',
Andrey Andreevca7d8222012-05-11 10:59:09 +0300139 'hiptop' => 'Danger Hiptop',
140 'nec-' => 'NEC',
141 'panasonic' => 'Panasonic',
142 'philips' => 'Philips',
143 'sagem' => 'Sagem',
144 'sanyo' => 'Sanyo',
145 'spv' => 'SPV',
146 'zte' => 'ZTE',
147 'sendo' => 'Sendo',
Eric Roberts19d0f562012-08-11 19:53:59 -0500148 'nintendo dsi' => 'Nintendo DSi',
149 'nintendo ds' => 'Nintendo DS',
150 'nintendo 3ds' => 'Nintendo 3DS',
Andrey Andreevca7d8222012-05-11 10:59:09 +0300151 'wii' => 'Nintendo Wii',
Andrey Andreevca7d8222012-05-11 10:59:09 +0300152 'open web' => 'Open Web',
153 'openweb' => 'OpenWeb',
Bo-Yi Wuf22f8522011-11-12 15:23:04 +0800154
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500155 // Operating Systems
Andrey Andreevca7d8222012-05-11 10:59:09 +0300156 'android' => 'Android',
157 'symbian' => 'Symbian',
158 'SymbianOS' => 'SymbianOS',
159 'elaine' => 'Palm',
Andrey Andreevca7d8222012-05-11 10:59:09 +0300160 'series60' => 'Symbian S60',
161 'windows ce' => 'Windows CE',
Derek Allard2067d1a2008-11-13 22:59:24 +0000162
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500163 // Browsers
Andrey Andreevca7d8222012-05-11 10:59:09 +0300164 'obigo' => 'Obigo',
165 'netfront' => 'Netfront Browser',
166 'openwave' => 'Openwave Browser',
167 'mobilexplorer' => 'Mobile Explorer',
168 'operamini' => 'Opera Mini',
169 'opera mini' => 'Opera Mini',
170 'opera mobi' => 'Opera Mobile',
vlakoffc941d852013-08-06 14:44:40 +0200171 'fennec' => 'Firefox Mobile',
Derek Allard2067d1a2008-11-13 22:59:24 +0000172
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500173 // Other
Andrey Andreevca7d8222012-05-11 10:59:09 +0300174 'digital paths' => 'Digital Paths',
175 'avantgo' => 'AvantGo',
176 'xiino' => 'Xiino',
177 'novarra' => 'Novarra Transcoder',
178 'vodafone' => 'Vodafone',
179 'docomo' => 'NTT DoCoMo',
180 'o2' => 'O2',
Derek Allard2067d1a2008-11-13 22:59:24 +0000181
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500182 // Fallback
Andrey Andreevca7d8222012-05-11 10:59:09 +0300183 'mobile' => 'Generic Mobile',
184 'wireless' => 'Generic Mobile',
185 'j2me' => 'Generic Mobile',
186 'midp' => 'Generic Mobile',
187 'cldc' => 'Generic Mobile',
188 'up.link' => 'Generic Mobile',
189 'up.browser' => 'Generic Mobile',
190 'smartphone' => 'Generic Mobile',
191 'cellphone' => 'Generic Mobile'
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500192);
Derek Allard2067d1a2008-11-13 22:59:24 +0000193
194// There are hundreds of bots but these are the most common.
195$robots = array(
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500196 'googlebot' => 'Googlebot',
197 'msnbot' => 'MSNBot',
Jacques du Randcae7a402014-11-23 18:37:54 +0200198 'baiduspider' => 'Baiduspider',
Andrew Seymour00cfbd22011-11-12 21:18:07 +0000199 'bingbot' => 'Bing',
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500200 'slurp' => 'Inktomi Slurp',
201 'yahoo' => 'Yahoo',
rochefort73002ba2015-06-27 01:30:40 +0900202 'ask jeeves' => 'Ask Jeeves',
Jacques du Rand05033362014-11-23 18:34:20 +0200203 'fastcrawler' => 'FastCrawler',
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500204 'infoseek' => 'InfoSeek Robot 1.0',
Garth Kerr1bfc1152013-04-03 13:02:21 -0400205 'lycos' => 'Lycos',
Jacques du Rand538d5342014-11-23 11:35:22 +0200206 'yandex' => 'YandexBot',
Jacques du Rand70ba13a2014-11-23 09:18:03 +0200207 'mediapartners-google' => 'MediaPartners Google',
208 'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
209 'adsbot-google' => 'AdsBot Google',
210 'feedfetcher-google' => 'Feedfetcher Google',
Jacques du Rand538d5342014-11-23 11:35:22 +0200211 'curious george' => 'Curious George'
Eric Barnes46fcf0b2011-11-12 12:42:14 -0500212);