Skip to content
Snippets Groups Projects
UserAgents.php 9.61 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    use CodeIgniter\Config\BaseConfig;
    
    
    /**
     * -------------------------------------------------------------------
     * User Agents
     * -------------------------------------------------------------------
     *
     * 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.
     */
    
    class UserAgents extends BaseConfig
    {
    
        /**
         * -------------------------------------------------------------------
         * OS Platforms
         * -------------------------------------------------------------------
         *
         * @var array<string, string>
         */
    
            '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',
    
        /**
         * -------------------------------------------------------------------
         * Browsers
         * -------------------------------------------------------------------
         *
         * The order of this array should NOT be changed. Many browsers return
         * multiple browser types so we want to identify the subtype first.
         *
         * @var array<string, string>
         */
    
            'OPR'    => 'Opera',
            'Flock'  => 'Flock',
            'Edge'   => 'Spartan',
            'Edg'    => 'Edge',
    
            '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',
    
        /**
         * -------------------------------------------------------------------
         * Mobiles
         * -------------------------------------------------------------------
         *
         * @var array<string, string>
         */
    
            // 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',
    
            'android'    => 'Android',
            'symbian'    => 'Symbian',
            'SymbianOS'  => 'SymbianOS',
            'elaine'     => 'Palm',
            'series60'   => 'Symbian S60',
    
            'windows ce' => 'Windows CE',
    
            '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',
    
            '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',
    
        /**
         * -------------------------------------------------------------------
         * Robots
         * -------------------------------------------------------------------
         *
         * There are hundred of bots but these are the most common.
         *
         * @var array<string, string>
         */
    
            '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',