php获取客户端浏览器及操作系统信息

由 user-agent 及 映射关系 准确获取客户端操作系统和浏览器信息,恩,重点在于完整的映射关系。

1. 获取

 1 <?php
 2 /**
 3  * 从 user-agent 通过映射关系获取 操作系统信息
 4  */
 5 function _getclientoperation_for_userauth($_useragent){
 6     if(!empty($_useragent)){
 7         $ua = strtolower($_useragent);
 8         $operation_map = array();
 9         @include_once './data/sysdata/info_op.php';
10 
11         foreach ($operation_map as $name => $alias_excludes){
12             if(isset($alias_excludes['alias']) && is_array($alias_excludes['alias']) && sizeof($alias_excludes['alias'])>0){
13                 foreach ($alias_excludes['alias'] as $a) {
14                     $a = strtolower($a);
15                     $_a_pos = strpos($ua, $a);
16                     $_ex_pos = false;
17                     if ($_a_pos !== false) {
18                         if (isset($alias_excludes['excludes']) && is_array($alias_excludes['excludes']) && sizeof($alias_excludes['excludes']) > 0) {
19                             foreach ($alias_excludes['excludes'] as $ex) {
20                                 $ex = strtolower($ex);
21                                 $_ex_pos = strpos($ua, $ex);
22                             }
23                         }
24                         if(isset($_a_pos) && isset($_ex_pos) && $_a_pos!==false && $_ex_pos===false){
25                             return $name;
26                         }
27                     }
28                 }
29             }
30         }
31     }
32     return false;
33 }
34 
35 /**
36  * 从 user-agent 通过映射关系获取 浏览器信息
37  */
38 function _getclientbrowser_for_userauth($_useragent){
39     if(!empty($_useragent)){
40         $ua = strtolower($_useragent);
41         $browser_map = array();
42         @include_once './data/sysdata/info_bws.php';
43 
44         foreach ($browser_map as $name => $alias_excludes){
45             if(isset($alias_excludes['alias']) && is_array($alias_excludes['alias']) && sizeof($alias_excludes['alias'])>0){
46                 foreach ($alias_excludes['alias'] as $a){
47                     $a = strtolower($a);
48                     $_a_pos = strpos($ua, $a);
49                     $_ex_pos = false;
50                     if ($_a_pos !== false) {
51                         if (isset($alias_excludes['excludes']) && is_array($alias_excludes['excludes']) && sizeof($alias_excludes['excludes']) > 0) {
52                             foreach ($alias_excludes['excludes'] as $ex) {
53                                 $ex = strtolower($ex);
54                                 $_ex_pos = strpos($ua, $ex);
55                             }
56                         }
57                         if(isset($_a_pos) && isset($_ex_pos) && $_a_pos!==false && $_ex_pos===false){
58                             return $name;
59                         }
60                     }
61                 }
62             }
63         }
64     }
65     return false;
66 }

 

2. info_op.php 文件内容

  1 <?php
  2 /**
  3  * 操作系统信息映射关系
  4  * name => (alias, exlcudes)
  5  * name 操作系统信息,alias 别名,excludes 不能包含的信息
  6  */
  7 $operation_map = array(
  8     'Windows 10' => array(
  9         'alias'=>array('Windows NT 6.4', 'Windows NT 10'),
 10         'excludes'=>array()
 11     ),
 12     'Windows 8.1' => array(
 13         'alias'=>array('Windows NT 6.3'),
 14         'excludes'=>array()
 15     ),
 16     'Windows 8' => array(
 17         'alias'=>array('Windows NT 6.2'),
 18         'excludes'=>array('Xbox', 'Xbox One')
 19     ),
 20     'Windows 7' => array(
 21         'alias'=>array('Windows NT 6.1'),
 22         'excludes'=>array('Xbox', 'Xbox One')
 23     ),
 24     'Windows Vista' => array(
 25         'alias'=>array('Windows NT 6'),
 26         'excludes'=>array('Xbox', 'Xbox One')
 27     ),
 28     'Windows 2000' => array(
 29         'alias'=>array('Windows NT 5.0'),
 30         'excludes'=>array()
 31     ),
 32     'Windows XP' => array(
 33         'alias'=>array('Windows NT 5'),
 34         'excludes'=>array('ggpht.com')
 35     ),
 36     'Windows 10 Mobile' => array(
 37         'alias'=>array('Windows Phone 10'),
 38         'excludes'=>array()
 39     ),
 40     'Windows Phone 8.1' => array(
 41         'alias'=>array('Windows Phone 8.1'),
 42         'excludes'=>array()
 43     ),
 44     'Windows Phone 8' => array(
 45         'alias'=>array('Windows Phone 8'),
 46         'excludes'=>array()
 47     ),
 48     'Windows Phone 7' => array(
 49         'alias'=>array('Windows Phone OS 7'),
 50         'excludes'=>array()
 51     ),
 52     'Windows Mobile' => array(
 53         'alias'=>array('Windows CE'),
 54         'excludes'=>array()
 55     ),
 56     'Windows 98' => array(
 57         'alias'=>array('Windows 98', 'Win98'),
 58         'excludes'=>array('Palm')
 59     ),
 60     'Xbox OS' => array(
 61         'alias'=>array('xbox'),
 62         'excludes'=>array()
 63     ),
 64     'Windows' => array(
 65         'alias'=>array('Windows'),
 66         'excludes'=>array('Palm', 'ggpht.com')
 67     ),
 68     'Android 6.x' => array(
 69         'alias'=>array('Android 6', 'Android-6'),
 70         'excludes'=>array('glass')
 71     ),
 72     'Android 6.x Tablet' => array(
 73         'alias'=>array('Android 6', 'Android-6'),
 74         'excludes'=>array('mobile', 'glass')
 75     ),
 76     'Android 5.x' => array(
 77         'alias'=>array('Android 5', 'Android-5'),
 78         'excludes'=>array('glass')
 79     ),
 80     'Android 5.x Tablet' => array(
 81         'alias'=>array('Android 5', 'Android-5'),
 82         'excludes'=>array('mobile', 'glass')
 83     ),
 84     'Android 4.x' => array(
 85         'alias'=>array('Android 4', 'Android-4'),
 86         'excludes'=>array('glass', 'ubuntu')
 87     ),
 88     'Android 4.x Tablet' => array(
 89         'alias'=>array('Android 4', 'Android-4'),
 90         'excludes'=>array('mobile', 'glass', 'ubuntu')
 91     ),
 92     'Android 4.x' => array(
 93         'alias'=>array('Android 4'),
 94         'excludes'=>array('ubuntu')
 95     ),
 96     'Android 3.x Tablet' => array(
 97         'alias'=>array('Android 3'),
 98         'excludes'=>array()
 99     ),
100     'Android 2.x' => array(
101         'alias'=>array('Android 2'),
102         'excludes'=>array()
103     ),
104     'Android 2.x Tablet' => array(
105         'alias'=>array('Kindle Fire', 'GT-P1000', 'SCH-I800'),
106         'excludes'=>array()
107     ),
108     'Android 1.x' => array(
109         'alias'=>array('Android 1'),
110         'excludes'=>array()
111     ),
112     'Android Mobile' => array(
113         'alias'=>array('Mobile'),
114         'excludes'=>array('ubuntu')
115     ),
116     'Android Tablet' => array(
117         'alias'=>array('Tablet'),
118         'excludes'=>array()
119     ),
120     'Android' => array(
121         'alias'=>array('Android'),
122         'excludes'=>array('Ubuntu')
123     ),
124     'Chrome OS' => array(
125         'alias'=>array('CrOS'),
126         'excludes'=>array()
127     ),
128     'WebOS' => array(
129         'alias'=>array('webOS'),
130         'excludes'=>array()
131     ),
132     'PalmOS'=>array(
133         'alias'=>array('Palm'),
134         'excludes'=>array()
135     ),
136     'MeeGo' => array(
137         'alias'=>array('MeeGo'),
138         'excludes'=>array()
139     ),
140     'iOS 9 (iPhone)' => array(
141         'alias'=>array('iPhone OS 9'),
142         'excludes'=>array()
143     ),
144     'iOS 8.4 (iPhone)' => array(
145         'alias'=>array('iPhone OS 8_4'),
146         'excludes'=>array()
147     ),
148     'iOS 8.3 (iPhone)' => array(
149         'alias'=>array('iPhone OS 8_3'),
150         'excludes'=>array()
151     ),
152     'iOS 8.2 (iPhone)' => array(
153         'alias'=>array('iPhone OS 8_2'),
154         'excludes'=>array()
155     ),
156     'iOS 8.1 (iPhone)' => array(
157         'alias'=>array('iPhone OS 8_1'),
158         'excludes'=>array()
159     ),
160     'iOS 8 (iPhone)' => array(
161         'alias'=>array('iPhone OS 8'),
162         'excludes'=>array()
163     ),
164     'iOS 7 (iPhone)' => array(
165         'alias'=>array('iPhone OS 7'),
166         'excludes'=>array()
167     ),
168     'iOS 6 (iPhone)' => array(
169         'alias'=>array('iPhone OS 6'),
170         'excludes'=>array()
171     ),
172     'iOS 5 (iPhone)' => array(
173         'alias'=>array('iPhone OS 5'),
174         'excludes'=>array()
175     ),
176     'iOS 4 (iPhone)' => array(
177         'alias'=>array('iPhone OS 4'),
178         'excludes'=>array()
179     ),
180     'iOS 9 (iPad)' => array(
181         'alias'=>array('OS 9'),
182         'excludes'=>array()
183     ),
184     'iOS 8.4 (iPad)' => array(
185         'alias'=>array('OS 8_4'),
186         'excludes'=>array()
187     ),
188     'iOS 8.3 (iPad)' => array(
189         'alias'=>array('OS 8_3'),
190         'excludes'=>array()
191     ),
192     'iOS 8.2 (iPad)' => array(
193         'alias'=>array('OS 8_2'),
194         'excludes'=>array()
195     ),
196     'iOS 8.1 (iPad)' => array(
197         'alias'=>array('OS 8_1'),
198         'excludes'=>array()
199     ),
200     'iOS 8 (iPad)' => array(
201         'alias'=>array('OS 8_0'),
202         'excludes'=>array()
203     ),
204     'iOS 7 (iPad)' => array(
205         'alias'=>array('OS 7'),
206         'excludes'=>array()
207     ),
208     'iOS 6 (iPad)' => array(
209         'alias'=>array('OS 6'),
210         'excludes'=>array()
211     ),
212     'Mac OS X (iPad)' => array(
213         'alias'=>array('iPad'),
214         'excludes'=>array()
215     ),
216     'Mac OS X (iPhone)' => array(
217         'alias'=>array('iPhone'),
218         'excludes'=>array()
219     ),
220     'Mac OS X (iPod)' => array(
221         'alias'=>array('iPod'),
222         'excludes'=>array()
223     ),
224     'iOS' => array(
225         'alias'=>array('iPhone OS', 'like Mac OS X'),
226         'excludes'=>array()
227     ),
228     'Mac OS X' => array(
229         'alias'=>array('Mac OS X', 'CFNetwork'),
230         'excludes'=>array()
231     ),
232     'Mac OS' => array(
233         'alias'=>array('Mac'),
234         'excludes'=>array()
235     ),
236     'Maemo' => array(
237         'alias'=>array('Maemo'),
238         'excludes'=>array()
239     ),
240     'Bada' => array(
241         'alias'=>array('Bada'),
242         'excludes'=>array()
243     ),
244     'Android (Google TV)' => array(
245         'alias'=>array('GoogleTV'),
246         'excludes'=>array()
247     ),
248     'Linux (Kindle 3)' => array(
249         'alias'=>array('Kindle/3'),
250         'excludes'=>array()
251     ),
252     'Linux (Kindle 2)' => array(
253         'alias'=>array('Kindle/2'),
254         'excludes'=>array()
255     ),
256     'Linux (Kindle)' => array(
257         'alias'=>array('Kindle'),
258         'excludes'=>array()
259     ),
260     'Ubuntu' => array(
261         'alias'=>array('ubuntu'),
262         'excludes'=>array()
263     ),
264     'Ubuntu Touch (mobile)' => array(
265         'alias'=>array('mobile'),
266         'excludes'=>array()
267     ),
268     'Linux' => array(
269         'alias'=>array('Linux', 'CamelHttpStream'),
270         'excludes'=>array()
271     ),
272     'Symbian OS 9.x' => array(
273         'alias'=>array('SymbianOS/9', 'Series60/3'),
274         'excludes'=>array()
275     ),
276     'Symbian OS 8.x' => array(
277         'alias'=>array('SymbianOS/8', 'Series60/2.6', 'Series60/2.8'),
278         'excludes'=>array()
279     ),
280     'Symbian OS 7.x' => array(
281         'alias'=>array('SymbianOS/7'),
282         'excludes'=>array()
283     ),
284     'Symbian OS 6.x' => array(
285         'alias'=>array('SymbianOS/6'),
286         'excludes'=>array()
287     ),
288     'Symbian OS' => array(
289         'alias'=>array('Symbian', 'Series60'),
290         'excludes'=>array()
291     ),
292     'Series 40' => array(
293         'alias'=>array('Nokia6300'),
294         'excludes'=>array()
295     ),
296     'Sony Ericsson' => array(
297         'alias'=>array('SonyEricsson'),
298         'excludes'=>array()
299     ),
300     'SunOS' => array(
301         'alias'=>array('SunOS'),
302         'excludes'=>array()
303     ),
304     'Sony Playstation' => array(
305         'alias'=>array('Playstation'),
306         'excludes'=>array()
307     ),
308     'Nintendo Wii' => array(
309         'alias'=>array('Wii'),
310         'excludes'=>array()
311     ),
312     'BlackBerry 7' => array(
313         'alias'=>array('Version/7'),
314         'excludes'=>array()
315     ),
316     'BlackBerry 6' => array(
317         'alias'=>array('Version/6'),
318         'excludes'=>array()
319     ),
320     'BlackBerry Tablet OS' => array(
321         'alias'=>array('RIM Tablet OS'),
322         'excludes'=>array()
323     ),
324     'BlackBerryOS' => array(
325         'alias'=>array('BlackBerry'),
326         'excludes'=>array()
327     ),
328     'Roku OS' => array(
329         'alias'=>array('Roku'),
330         'excludes'=>array()
331     ),
332     'Proxy' => array(
333         'alias'=>array('ggpht.com'),
334         'exclludes'=>array()
335     ),
336     'Unknown mobile' => array(
337         'alias'=>array('Mobile'),
338         'excludes'=>array()
339     ),
340     'Unknown tablet' => array(
341         'alias'=>array('Tablet'),
342         'excludes'=>array()
343     ),
344     'Unknown' => array(
345         'alias'=>array(),
346         'excludes'=>array()
347     )
348 );

3. info_bws.php 文件内容

<?php
/**
 * 浏览器信息映射关系
 * name => (alias, exlcudes)
 * name 浏览器信息,alias 别名,excludes 不能包含的信息
 */
$browser_map = array(
    'Outlook 2007' => array(
        'alias'=>array('MSOffice 12'),
        'excludes'=>array()
    ),
    'Outlook 2013' => array(
        'alias'=>array('Microsoft Outlook 15'),
        'excludes'=>array()
    ),
    'Outlook 2010' => array(
        'alias'=>array('MSOffice 14', 'Microsoft Outlook 14'),
        'excludes'=>array()
    ),
    'Outlook' => array(
        'alias'=>array('MSOffice'),
        'excludes'=>array()
    ),
    'Windows Live Mail' => array(
        'alias'=>array('Outlook-Express/7.0'),
        'excludes'=>array()
    ),
    'IE Mobile 11' => array(
        'alias'=>array('IEMobile/11'),
        'excludes'=>array()
    ),
    'IE Mobile 10' => array(
        'alias'=>array('IEMobile/10'),
        'excludes'=>array()
    ),
    'IE Mobile 9' => array(
        'alias'=>array('IEMobile/9'),
        'excludes'=>array()
    ),
    'IE Mobile 7' => array(
        'alias'=>array('IEMobile 7'),
        'excludes'=>array()
    ),
    'IE Mobile 6' => array(
        'alias'=>array('IEMobile 6'),
        'excludes'=>array()
    ),
    'Xbox' => array(
        'alias'=>array('xbox'),
        'excludes'=>array()
    ),
    'Internet Explorer 11' => array(
        'alias'=>array('Trident/7', 'IE 11.'),
        'excludes'=>array('MSIE 7', 'BingPreview')
    ),
    'Internet Explorer 10' => array(
        'alias'=>array('MSIE 10'),
        'excludes'=>array()
    ),
    'Internet Explorer 9' => array(
        'alias'=>array('MSIE 9'),
        'excludes'=>array()
    ),
    'Internet Explorer 8' => array(
        'alias'=>array('MSIE 8'),
        'excludes'=>array()
    ),
    'Internet Explorer 7' => array(
        'alias'=>array('MSIE 7'),
        'excludes'=>array()
    ),
    'Internet Explorer 6' =>array(
        'alias'=>array('MSIE 6'),
        'excludes'=>array()
    ),
    'Internet Explorer 5.5' => array(
        'alias'=>array('MSIE 5.5'),
        'excludes'=>array()
    ),
    'Internet Explorer 5' => array(
        'alias'=>array('MSIE 5'),
        'excludes'=>array()
    ),
    'Internet Explorer' => array(
        'alias'=>array('MSIE', 'Trident', 'IE '),
        'excludes'=>array('BingPreview', 'Xbox', 'Xbox One')
    ),
    'Microsoft Edge Mobile' => array(
        'alias'=>array('Mobile Safari'),
        'excludes'=>array()
    ),
    'Microsoft Edge Mobile 12' => array(
        'alias'=>array('Mobile Safari', 'Edge/12'),
        'excludes'=>array()
    ),
    'Microsoft Edge 13' => array(
        'alias'=>array('Edge/13'),
        'excludes'=>array('Mobile')
    ),
    'Microsoft Edge 12' => array(
        'alias'=>array('Edge/12'),
        'excludes'=>array('Mobile')
    ),
    'Microsoft Edge' => array(
        'alias'=>array('Edge'),
        'excludes'=>array()
    ),
    'Chrome Mobile' => array(
        'alias'=>array('CrMo', 'CriOS', 'Mobile Safari'),
        'excludes'=>array('OPR/')
    ),
    'Chrome 49' => array(
        'alias'=>array('Chrome/49'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 48' => array(
        'alias'=>array('Chrome/48'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 47' => array(
        'alias'=>array('Chrome/47'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 46' => array(
        'alias'=>array('Chrome/46'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 45' => array(
        'alias'=>array('Chrome/45'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 44' => array(
        'allias'=>array('Chrome/44'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 43' => array(
        'alias'=>array('Chrome/43'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 42' => array(
        'alias'=>array('Chrome/42'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 41' => array(
        'alias'=>array('Chrome/41'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 40' => array(
        'alias'=>array('Chrome/40'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Chrome 39' => array(
        'alias'=>array('Chrome/39'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 38' => array(
        'alias'=>array('Chrome/38'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 37' => array(
        'alias'=>array('Chrome/37'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 36' => array(
        'alias'=>array('Chrome/36'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 35' => array(
        'alias'=>array('Chrome/35'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 34' => array(
        'alias'=>array('Chrome/34'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 33' => array(
        'alias'=>array('Chrome/33'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 32' => array(
        'alias'=>('Chrome/32'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 31' => array(
        'alias'=>array('Chrome/31'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 30' => array(
        'alias'=>array('Chrome/30'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 29' => array(
        'alias'=>array('Chrome/29'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 28' => array(
        'alias'=>array('Chrome/28'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 27' => array(
        'alias'=>array('Chrome/27'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 26' => array(
        'alias'=>array('Chrome/26'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 25' => array(
        'alias'=>array('Chrome/25'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 24' => array(
        'alias'=>array('Chrome/24'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 23' => array(
        'alias'=>array('Chrome/23'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 22' => array(
        'alias'=>array('Chrome/22'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 21' => array(
        'alias'=>array('Chrome/21'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 20' => array(
        'alias'=>array('Chrome/20'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 19' => array(
        'alias'=>array('Chrome/19'),
        'excludes'=>array('OPR/', 'Web Preview')
    ),
    'Chrome 18' => array(
        'alias'=>array('Chrome/18'),
        'excludes'=>array()
    ),
    'Chrome 17' => array(
        'alias'=>array('Chrome/17'),
        'excludes'=>array()
    ),
    'Chrome 16' => array(
        'alias'=>array('Chrome/16'),
        'excludes'=>array()
    ),
    'Chrome 15' => array(
        'alias'=>array('Chrome/15'),
        'excludes'=>array()
    ),
    'Chrome 14' => array(
        'alias'=>array('Chrome/14'),
        'excludes'=>array()
    ),
    'Chrome 13' => array(
        'alias'=>array('Chrome/13'),
        'excludes'=>array()
    ),
    'Chrome 12' => array(
        'alias'=>array('Chrome/12'),
        'excludes'=>array()
    ),
    'Chrome 11' => array(
        'alias'=>array('Chrome/11'),
        'excludes'=>array()
    ),
    'Chrome 10' => array(
        'alias'=>array('Chrome/10'),
        'excludes'=>array()
    ),
    'Chrome 9' => array(
        'alias'=>array('Chrome/9'),
        'excludes'=>array()
    ),
    'Chrome 8' => array(
        'alias'=>array('Chrome/8'),
        'excludes'=>array()
    ),
    'Chrome' => array(
        'alias'=>array('Chrome', 'CrMo', 'CriOS'),
        'excludes'=>array('OPR/', 'Web Preview', 'Vivaldi')
    ),
    'Omniweb' => array(
        'alias'=>array('OmniWeb'),
        'excludes'=>array()
    ),
    'Firefox 3 Mobile' => array(
        'alias'=>array('Firefox/3.5 Maemo'),
        'excludes'=>array()
    ),
    'Firefox Mobile' => array(
        'alias'=>array('Mobile'),
        'excludes'=>array()
    ),
    'Firefox Mobile 23' => array(
        'alias'=>array('Firefox/23'),
        'excludes'=>array()
    ),
    'Firefox Mobile (iOS)' => array(
        'alias'=>array('FxiOS'),
        'excludes'=>array()
    ),
    'Firefox 45' => array(
        'alias'=>array('Firefox/45'),
        'excludes'=>array()
    ),
    'Firefox 44'=> array(
        'alias'=>array('Firefox/44'),
        'excludes'=>array()
    ),
    'Firefox 43' => array(
        'alias'=>array('Firefox/43'),
        'excludes'=>array()
    ),
    'Firefox 42' => array(
        'alias'=>array('Firefox/42'),
        'excludes'=>array()
    ),
    'Firefox 41' => array(
        'alias'=>array('Firefox/41'),
        'excludes'=>array()
    ),
    'Firefox 40' => array(
        'alias'=>array('Firefox/40'),
        'excludes'=>array()
    ),
    'Firefox 39' => array(
        'alias'=>array('Firefox/39'),
        'excludes'=>array()
    ),
    'Firefox 38' => array(
        'alias'=>array('Firefox/38'),
        'excludes'=>array()
    ),
    'Firefox 37' => array(
        'alias'=>array('Firefox/37'),
        'excludes'=>array()
    ),
    'Firefox 36' => array(
        'alias'=>array('Firefox/36'),
        'excludes'=>array()
    ),
    'Firefox 35' => array(
        'alias'=>array('Firefox/35'),
        'excludes'=>array()
    ),
    'Firefox 34' => array(
        'alias'=>array('Firefox/34'),
        'excludes'=>array()
    ),
    'Firefox 33' => array(
        'alias'=>array('Firefox/33'),
        'excludes'=>array()
    ),
    'Firefox 32' => array(
        'alias'=>array('Firefox/32'),
        'excludes'=>array()
    ),
    'Firefox 31' => array(
        'alias'=>array('Firefox/31'),
        'excludes'=>array()
    ),
    'Firefox 30' => array(
        'alias'=>array('Firefox/30'),
        'excludes'=>array()
    ),
    'Firefox 29' => array(
        'alias'=>array('Firefox/29'),
        'excludes'=>array()
    ),
    'Firefox 28' => array(
        'alias'=>array('Firefox/28'),
        'excludes'=>array()
    ),
    'Firefox 27' => array(
        'alias'=>array('Firefox/27'),
        'excludes'=>array()
    ),
    'Firefox 26' => array(
        'alias'=>array('Firefox/26'),
        'excludes'=>array()
    ),
    'Firefox 25' => array(
        'alias'=>array('Firefox/25'),
        'excludes'=>array()
    ),
    'Firefox 24' => array(
        'alias'=>array('Firefox/24'),
        'excludes'=>array()
    ),
    'Firefox 23' => array(
        'alias'=>array('Firefox/23'),
        'excludes'=>array()
    ),
    'Firefox 22' => array(
        'alias'=>array('Firefox/22'),
        'excludes'=>array()
    ),
    'Firefox 21' => array(
        'alias'=>array('Firefox/21'),
        'excludes'=>array('WordPress.com mShots')
    ),
    'Firefox 20' => array(
        'alias'=>array('Firefox/20'),
        'excludes'=>array()
    ),
    'Firefox 19' => array(
        'alias'=>array('Firefox/19'),
        'excludes'=>array()
    ),'Firefox 18' => array(
        'alias'=>array('Firefox/18'),
        'excludes'=>array()
    ),
    'Firefox 17' => array(
        'alias'=>array('Firefox/17'),
        'excludes'=>array()
    ),
    'Firefox 16' => array(
        'alias'=>array('Firefox/16'),
        'excludes'=>array()
    ),
    'Firefox 15' => array(
        'alias'=>array('Firefox/15'),
        'excludes'=>array()
    ),
    'Firefox 14' => array(
        'alias'=>array('Firefox/14'),
        'excludes'=>array()
    ),
    'Firefox 13' => array(
        'alias'=>array('Firefox/13'),
        'excludes'=>array()
    ),
    'Firefox 12' => array(
        'alias'=>array('Firefox/12'),
        'excludes'=>array()
    ),
    'Firefox 11' => array(
        'alias'=>array('Firefox/11'),
        'excludes'=>array()
    ),
    'Firefox 10' => array(
        'alias'=>array('Firefox/10'),
        'excludes'=>array()
    ),
    'Firefox 9' => array(
        'alias'=>array('Firefox/9'),
        'excludes'=>array()
    ),
    'Firefox 8' => array(
        'alias'=>array('Firefox/8'),
        'excludes'=>array()
    ),
    'Firefox 7' => array(
        'alias'=>array('Firefox/7'),
        'excludes'=>array()
    ),
    'Firefox 6' => array(
        'alias'=>array('Firefox/6.'),
        'excludes'=>array()
    ),
    'Firefox 5' => array(
        'alias'=>array('Firefox/5.'),
        'excludes'=>array()
    ),
    'Firefox 4' => array(
        'alias'=>array('Firefox/4.'),
        'excludes'=>array()
    ),
    'Firefox 3' => array(
        'alias'=>array('Firefox/3.'),
        'excludes'=>array('Camino', 'Flock', 'ggpht.com')
    ),
    'Firefox 2' => array(
        'alias'=>array('Firefox/2.'),
        'excludes'=>array('Camino', 'WordPress.com mShots')
    ),
    'Firefox 1.5' => array(
        'alias'=>array('Firefox/1.5'),
        'excludes'=>array()
    ),
    'Firefox' => array(
        'alias'=>array('Firefox', 'FxiOS'),
        'excludes'=>array('camino', 'flock', 'ggpht.com', 'WordPress.com mShots')
    ),
    'BlackBerry' => array(
        'alias'=>array('BB10'),
        'excludes'=>array()
    ),
    'Mobile Safari' => array(
        'alias'=>array('Mobile Safari', 'Mobile/'),
        'excludes'=>array('bot', 'preview', 'OPR/', 'Coast/', 'Vivaldi', 'CFNetwork', 'FxiOS')
    ),
    'Silk' => array(
        'alias'=>array('Silk/'),
        'excludes'=>array()
    ),
    'Safari 9' => array(
        'alias'=>array('Version/9'),
        'excludes'=>array('Applebot')
    ),
    'Safari 8' => array(
        'alias'=>array('Version/8'),
        'excludes'=>array('Applebot')
    ),
    'Safari 7' => array(
        'alias'=>array('Version/7'),
        'excludes'=>array('bing')
    ),
    'Safari 6' => array(
        'alias'=>array('Version/6'),
        'excludes'=>array()
    ),
    'Safari 5' => array(
        'alias'=>array('Version/5'),
        'excludes'=>array('Google Web Preview')
    ),
    'Safari 4' => array(
        'alias'=>array('Version/4'),
        'excludes'=>array('Googlebot-Mobile')
    ),
    'Safari' => array(
        'alias'=>array('Safari'),
        'excludes'=>array('bot', 'preview', 'OPR/', 'Coast/', 'Vivaldi', 'CFNetwork', 'Phantom')
    ),
    'Opera' => array(
        'alias'=>array(' Coast/1.'),
        'excludes'=>array()
    ),
    'Opera' => array(
        'alias'=>array(' Coast/'),
        'excludes'=>array()
    ),
    'Opera Mobile' => array(
        'alias'=>array('Mobile Safari'),
        'excludes'=>array()
    ),
    'Opera Mini' => array(
        'alias'=>array('Opera Mini'),
        'excludes'=>array()
    ),
    'Opera 34' => array(
        'alias'=>array('OPR/34.'),
        'excludes'=>array()
    ),
    'Opera 33' => array(
        'alias'=>array('OPR/33.'),
        'excludes'=>array()
    ),
    'Opera 32' => array(
        'alias'=>array('OPR/32.'),
        'excludes'=>array()
    ),
    'Opera 31' => array(
        'alias'=>array('OPR/31.'),
        'excludes'=>array()
    ),
    'Opera 30' => array(
        'alias'=>array('OPR/30.'),
        'excludes'=>array()
    ),
    'Opera 29' => array(
        'alias'=>array('OPR/29.'),
        'excludes'=>array()
    ),
    'Opera 28' => array(
        'alias'=>array('OPR/28.'),
        'excludes'=>array()
    ),
    'Opera 27' => array(
        'alias'=>array('OPR/27.'),
        'excludes'=>array()
    ),
    'Opera 26' => array(
        'alias'=>array('OPR/26.'),
        'excludes'=>array()
    ),
    'Opera 25' => array(
        'alias'=>array('OPR/25.'),
        'excludes'=>array()
    ),
    'Opera 24' => array(
        'alias'=>array('OPR/24.'),
        'excludes'=>array()
    ),
    'Opera 23' => array(
        'alias'=>array('OPR/23.'),
        'excludes'=>array()
    ),
    'Opera 20' => array(
        'alias'=>array('OPR/20.'),
        'excludes'=>array()
    ),
    'Opera 19' => array(
        'alias'=>array('OPR/19.'),
        'excludes'=>array()
    ),
    'Opera 18' => array(
        'alias'=>array('OPR/18.'),
        'excludes'=>array()
    ),
    'Opera 17' => array(
        'alias'=>array('OPR/17.'),
        'excludes'=>array()
    ),
    'Opera 16' => array(
        'alias'=>array('OPR/16.'),
        'excludes'=>array()
    ),
    'Opera 15' => array(
        'alias'=>array('OPR/15.'),
        'excludes'=>array()
    ),
    'Opera 12' => array(
        'alias'=>array('Opera/12', 'Version/12.'),
        'excludes'=>array()
    ),
    'Opera 11' => array(
        'alias'=>array('Version/11.'),
        'excludes'=>array()
    ),
    'Opera 10' => array(
        'alias'=>array('Opera/9.8'),
        'excludes'=>array()
    ),
    'Opera 9' => array(
        'alias'=>array('Opera/9'),
        'excludes'=>array()
    ),
    'Opera' => array(
        'alias'=>array(' OPR/', 'Opera'),
        'excludes'=>array()
    ),
    'Konqueror' => array(
        'alias'=>array('Konqueror'),
        'excludes'=>array('Exabot')
    ),
    'Samsung Dolphin 2' => array(
        'alias'=>array('Dolfin/2'),
        'excludes'=>array()
    ),
    'iTunes' => array(
        'alias'=>array('iTunes'),
        'excludes'=>array()
    ),
    'App Store' => array(
        'alias'=>array('MacAppStore'),
        'excludes'=>array()
    ),
    'Adobe AIR application' => array(
        'alias'=>array('AdobeAIR'),
        'excludes'=>array()
    ),
    'Apple WebKit' => array(
        'alias'=>array('AppleWebKit'),
        'excludes'=>array('bot', 'preview', 'OPR/', 'Coast/', 'Vivaldi', 'Phantom')
    ),
    'Lotus Notes' => array(
        'alias'=>array('Lotus-Notes'),
        'excludes'=>array()
    ),
    'Camino' => array(
        'alias'=>array('Camino'),
        'excludes'=>array()
    ),
    'Camino 2' => array(
        'alias'=>array('Camino/2'),
        'excludes'=>array()
    ),
    'Flock' => array(
        'alias'=>array('Flock'),
        'excludes'=>array()
    ),
    'Thunderbird 12' => array(
        'alias'=>array('Thunderbird/12'),
        'excludes'=>array()
    ),
    'Thunderbird 11' => array(
        'alias'=>array('Thunderbird/11'),
        'excludes'=>array()
    ),
    'Thunderbird 10' => array(
        'alias'=>array('Thunderbird/10'),
        'excludes'=>array()
    ),
    'Thunderbird 8' => array(
        'alias'=>array('Thunderbird/8'),
        'excludes'=>array()
    ),
    'Thunderbird 7' => array(
        'alias'=>array('Thunderbird/7'),
        'excludes'=>array()
    ),
    'Thunderbird 6' => array(
        'alias'=>array('Thunderbird/6'),
        'excludes'=>array()
    ),
    'Thunderbird 3' => array(
        'alias'=>array('Thunderbird/3'),
        'excludes'=>array()
    ),
    'Thunderbird 2' => array(
        'alias'=>array('Thunderbird/2'),
        'excludes'=>array()
    ),
    'Thunderbird' => array(
        'alias'=>array('Thunderbird'),
        'excludes'=>array()
    ),
    'Vivaldi' => array(
        'alias'=>array('Vivaldi'),
        'excludes'=>array()
    ),
    'SeaMonkey' => array(
        'alias'=>array('SeaMonkey'),
        'excludes'=>array()
    ),
    'Mobil Robot/Spider' => array(
        'alias'=>array('Googlebot-Mobile'),
        'excludes'=>array()
    ),
    'Robot/Spider' => array(
        'alias'=>array('Googlebot', 'Mediapartners-Google', 'Web Preview', 'bot', 'Applebot', 'spider', 'crawler', 'Feedfetcher', 'Slurp',
            'Twiceler', 'Nutch', 'BecomeBot', 'bingbot', 'BingPreview', 'Google Web Preview', 'WordPress.com mShots', 'Seznam',
            'facebookexternalhit', 'YandexMarket', 'Teoma', 'ThumbSniper', 'Phantom'),
        'excludes'=>array()
    ),
    'Mozilla' => array(
        'alias'=>array('Mozilla', 'Moozilla'),
        'excludes'=>array('ggpht.com')
    ),
    'CFNetwork' => array(
        'alias'=>array('CFNetwork'),
        'excludes'=>array()
    ),
    'Eudora' => array(
        'alias'=>array('Eudora', 'EUDORA'),
        'excludes'=>array()
    ),
    'PocoMail' => array(
        'alias'=>array('PocoMail'),
        'excludes'=>array()
    ),
    'The Bat!' => array(
        'alias'=>array('The Bat'),
        'excludes'=>array()
    ),
    'NetFront' => array(
        'alias'=>array('NetFront'),
        'excludes'=>array()
    ),
    'Evolution' => array(
        'alias'=>array('CamelHttpStream'),
        'excludes'=>array()
    ),
    'Lynx' => array(
        'alias'=>array('Lynx'),
        'excludes'=>array()
    ),
    'Downloading Tool' => array(
        'alias'=>array('cURL', 'wget', 'ggpht.com', 'Apache-HttpClient'),
        'excludes'=>array()
    ),
    'Unknown' => array(
        'alias'=>array(),
        'excludes'=>array()
    )
);

 

(完)

posted @ 2017-09-05 11:26  胖小烦  阅读(4453)  评论(0编辑  收藏  举报