Skip to content
Snippets Groups Projects
UserAgents.php 7.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php namespace Config;
    
    use CodeIgniter\Config\BaseConfig;
    
    class UserAgents extends BaseConfig
    {
    	/*
    	| -------------------------------------------------------------------
    	| USER AGENT TYPES
    	| -------------------------------------------------------------------
    	| This file contains four arrays of user agent data. It is used by the
    	| User Agent Class to help identify browser, platform, robot, and
    	| mobile device data. The array keys are used to identify the device
    	| and the array values are used to set the actual name of the item.
    	*/
    	public $platforms = [
    		'windows nt 10.0' => 'Windows 10',
    		'windows nt 6.3'  => 'Windows 8.1',
    		'windows nt 6.2'  => 'Windows 8',
    		'windows nt 6.1'  => 'Windows 7',
    		'windows nt 6.0'  => 'Windows Vista',
    		'windows nt 5.2'  => 'Windows 2003',
    		'windows nt 5.1'  => 'Windows XP',
    		'windows nt 5.0'  => 'Windows 2000',
    		'windows nt 4.0'  => 'Windows NT 4.0',
    		'winnt4.0'        => 'Windows NT 4.0',
    		'winnt 4.0'       => 'Windows NT',
    		'winnt'           => 'Windows NT',
    		'windows 98'      => 'Windows 98',
    		'win98'           => 'Windows 98',
    		'windows 95'      => 'Windows 95',
    		'win95'           => 'Windows 95',
    		'windows phone'   => 'Windows Phone',
    		'windows'         => 'Unknown Windows OS',
    		'android'         => 'Android',
    		'blackberry'      => 'BlackBerry',
    		'iphone'          => 'iOS',
    		'ipad'            => 'iOS',
    		'ipod'            => 'iOS',
    		'os x'            => 'Mac OS X',
    		'ppc mac'         => 'Power PC Mac',
    		'freebsd'         => 'FreeBSD',
    		'ppc'             => 'Macintosh',
    		'linux'           => 'Linux',
    		'debian'          => 'Debian',
    		'sunos'           => 'Sun Solaris',
    		'beos'            => 'BeOS',
    		'apachebench'     => 'ApacheBench',
    		'aix'             => 'AIX',
    		'irix'            => 'Irix',
    		'osf'             => 'DEC OSF',
    		'hp-ux'           => 'HP-UX',
    		'netbsd'          => 'NetBSD',
    		'bsdi'            => 'BSDi',
    		'openbsd'         => 'OpenBSD',
    		'gnu'             => 'GNU/Linux',
    		'unix'            => 'Unknown Unix OS',
    		'symbian'         => 'Symbian OS',
    	];
    
    	// The order of this array should NOT be changed. Many browsers return
    	// multiple browser types so we want to identify the sub-type first.
    	public $browsers = [
    		'OPR'               => 'Opera',
    		'Flock'             => 'Flock',
    		'Edge'              => 'Spartan',
    		'Chrome'            => 'Chrome',
    		// Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
    		'Opera.*?Version'   => 'Opera',
    		'Opera'             => 'Opera',
    		'MSIE'              => 'Internet Explorer',
    		'Internet Explorer' => 'Internet Explorer',
    		'Trident.* rv'      => 'Internet Explorer',
    		'Shiira'            => 'Shiira',
    		'Firefox'           => 'Firefox',
    		'Chimera'           => 'Chimera',
    		'Phoenix'           => 'Phoenix',
    		'Firebird'          => 'Firebird',
    		'Camino'            => 'Camino',
    		'Netscape'          => 'Netscape',
    		'OmniWeb'           => 'OmniWeb',
    		'Safari'            => 'Safari',
    		'Mozilla'           => 'Mozilla',
    		'Konqueror'         => 'Konqueror',
    		'icab'              => 'iCab',
    		'Lynx'              => 'Lynx',
    		'Links'             => 'Links',
    		'hotjava'           => 'HotJava',
    		'amaya'             => 'Amaya',
    		'IBrowse'           => 'IBrowse',
    		'Maxthon'           => 'Maxthon',
    		'Ubuntu'            => 'Ubuntu Web Browser',
    		'Vivaldi'           => 'Vivaldi',
    	];
    
    	public $mobiles = [
    		// legacy array, old values commented out
    		'mobileexplorer'       => 'Mobile Explorer',
    		// 'openwave'             => 'Open Wave',
    		// 'opera mini'           => 'Opera Mini',
    		// 'operamini'            => 'Opera Mini',
    		// 'elaine'               => 'Palm',
    		'palmsource'           => 'Palm',
    		// 'digital paths'        => 'Palm',
    		// 'avantgo'              => 'Avantgo',
    		// 'xiino'                => 'Xiino',
    		'palmscape'            => 'Palmscape',
    		// 'nokia'                => 'Nokia',
    		// 'ericsson'             => 'Ericsson',
    		// 'blackberry'           => 'BlackBerry',
    		// 'motorola'             => 'Motorola'
    
    		// Phones and Manufacturers
    		'motorola'             => 'Motorola',
    		'nokia'                => 'Nokia',
    		'palm'                 => 'Palm',
    		'iphone'               => 'Apple iPhone',
    		'ipad'                 => 'iPad',
    		'ipod'                 => 'Apple iPod Touch',
    		'sony'                 => 'Sony Ericsson',
    		'ericsson'             => 'Sony Ericsson',
    		'blackberry'           => 'BlackBerry',
    		'cocoon'               => 'O2 Cocoon',
    		'blazer'               => 'Treo',
    		'lg'                   => 'LG',
    		'amoi'                 => 'Amoi',
    		'xda'                  => 'XDA',
    		'mda'                  => 'MDA',
    		'vario'                => 'Vario',
    		'htc'                  => 'HTC',
    		'samsung'              => 'Samsung',
    		'sharp'                => 'Sharp',
    		'sie-'                 => 'Siemens',
    		'alcatel'              => 'Alcatel',
    		'benq'                 => 'BenQ',
    		'ipaq'                 => 'HP iPaq',
    		'mot-'                 => 'Motorola',
    		'playstation portable' => 'PlayStation Portable',
    		'playstation 3'        => 'PlayStation 3',
    		'playstation vita'     => 'PlayStation Vita',
    		'hiptop'               => 'Danger Hiptop',
    		'nec-'                 => 'NEC',
    		'panasonic'            => 'Panasonic',
    		'philips'              => 'Philips',
    		'sagem'                => 'Sagem',
    		'sanyo'                => 'Sanyo',
    		'spv'                  => 'SPV',
    		'zte'                  => 'ZTE',
    		'sendo'                => 'Sendo',
    		'nintendo dsi'         => 'Nintendo DSi',
    		'nintendo ds'          => 'Nintendo DS',
    		'nintendo 3ds'         => 'Nintendo 3DS',
    		'wii'                  => 'Nintendo Wii',
    		'open web'             => 'Open Web',
    		'openweb'              => 'OpenWeb',
    
    		// Operating Systems
    		'android'              => 'Android',
    		'symbian'              => 'Symbian',
    		'SymbianOS'            => 'SymbianOS',
    		'elaine'               => 'Palm',
    		'series60'             => 'Symbian S60',
    		'windows ce'           => 'Windows CE',
    
    		// Browsers
    		'obigo'                => 'Obigo',
    		'netfront'             => 'Netfront Browser',
    		'openwave'             => 'Openwave Browser',
    		'mobilexplorer'        => 'Mobile Explorer',
    		'operamini'            => 'Opera Mini',
    		'opera mini'           => 'Opera Mini',
    		'opera mobi'           => 'Opera Mobile',
    		'fennec'               => 'Firefox Mobile',
    
    		// Other
    		'digital paths'        => 'Digital Paths',
    		'avantgo'              => 'AvantGo',
    		'xiino'                => 'Xiino',
    		'novarra'              => 'Novarra Transcoder',
    		'vodafone'             => 'Vodafone',
    		'docomo'               => 'NTT DoCoMo',
    		'o2'                   => 'O2',
    
    		// Fallback
    		'mobile'               => 'Generic Mobile',
    		'wireless'             => 'Generic Mobile',
    		'j2me'                 => 'Generic Mobile',
    		'midp'                 => 'Generic Mobile',
    		'cldc'                 => 'Generic Mobile',
    		'up.link'              => 'Generic Mobile',
    		'up.browser'           => 'Generic Mobile',
    		'smartphone'           => 'Generic Mobile',
    		'cellphone'            => 'Generic Mobile',
    	];
    
    	// There are hundreds of bots but these are the most common.
    	public $robots = [
    		'googlebot'            => 'Googlebot',
    		'msnbot'               => 'MSNBot',
    		'baiduspider'          => 'Baiduspider',
    		'bingbot'              => 'Bing',
    		'slurp'                => 'Inktomi Slurp',
    		'yahoo'                => 'Yahoo',
    		'ask jeeves'           => 'Ask Jeeves',
    		'fastcrawler'          => 'FastCrawler',
    		'infoseek'             => 'InfoSeek Robot 1.0',
    		'lycos'                => 'Lycos',
    		'yandex'               => 'YandexBot',
    		'mediapartners-google' => 'MediaPartners Google',
    		'CRAZYWEBCRAWLER'      => 'Crazy Webcrawler',
    		'adsbot-google'        => 'AdsBot Google',
    		'feedfetcher-google'   => 'Feedfetcher Google',
    		'curious george'       => 'Curious George',
    		'ia_archiver'          => 'Alexa Crawler',
    		'MJ12bot'              => 'Majestic-12',
    		'Uptimebot'            => 'Uptimebot',
    	];
    }