Mercurial > logstash
comparison regexes.yaml @ 30:f2691b83bafa
update to ES 0.90.0 and logstash 1.1.12
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Fri, 10 May 2013 15:01:48 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
29:b37cde5bac95 | 30:f2691b83bafa |
---|---|
1 user_agent_parsers: | |
2 #### SPECIAL CASES TOP #### | |
3 | |
4 # must go before Firefox to catch SeaMonkey/Camino | |
5 - regex: '(SeaMonkey|Camino)/(\d+)\.(\d+)\.?([ab]?\d+[a-z]*)' | |
6 | |
7 # Firefox | |
8 - regex: '(Pale[Mm]oon)/(\d+)\.(\d+)\.?(\d+)?' | |
9 family_replacement: 'Pale Moon (Firefox Variant)' | |
10 - regex: '(Fennec)/(\d+)\.(\d+)\.?([ab]?\d+[a-z]*)' | |
11 family_replacement: 'Firefox Mobile' | |
12 - regex: '(Fennec)/(\d+)\.(\d+)(pre)' | |
13 family_replacement: 'Firefox Mobile' | |
14 - regex: '(Fennec)/(\d+)\.(\d+)' | |
15 family_replacement: 'Firefox Mobile' | |
16 - regex: 'Mobile.*(Firefox)/(\d+)\.(\d+)' | |
17 family_replacement: 'Firefox Mobile' | |
18 - regex: '(Namoroka|Shiretoko|Minefield)/(\d+)\.(\d+)\.(\d+(?:pre)?)' | |
19 family_replacement: 'Firefox ($1)' | |
20 - regex: '(Firefox)/(\d+)\.(\d+)(a\d+[a-z]*)' | |
21 family_replacement: 'Firefox Alpha' | |
22 - regex: '(Firefox)/(\d+)\.(\d+)(b\d+[a-z]*)' | |
23 family_replacement: 'Firefox Beta' | |
24 - regex: '(Firefox)-(?:\d+\.\d+)?/(\d+)\.(\d+)(a\d+[a-z]*)' | |
25 family_replacement: 'Firefox Alpha' | |
26 - regex: '(Firefox)-(?:\d+\.\d+)?/(\d+)\.(\d+)(b\d+[a-z]*)' | |
27 family_replacement: 'Firefox Beta' | |
28 - regex: '(Namoroka|Shiretoko|Minefield)/(\d+)\.(\d+)([ab]\d+[a-z]*)?' | |
29 family_replacement: 'Firefox ($1)' | |
30 - regex: '(Firefox).*Tablet browser (\d+)\.(\d+)\.(\d+)' | |
31 family_replacement: 'MicroB' | |
32 - regex: '(MozillaDeveloperPreview)/(\d+)\.(\d+)([ab]\d+[a-z]*)?' | |
33 | |
34 # e.g.: Flock/2.0b2 | |
35 - regex: '(Flock)/(\d+)\.(\d+)(b\d+?)' | |
36 | |
37 # RockMelt | |
38 - regex: '(RockMelt)/(\d+)\.(\d+)\.(\d+)' | |
39 | |
40 # e.g.: Fennec/0.9pre | |
41 - regex: '(Navigator)/(\d+)\.(\d+)\.(\d+)' | |
42 family_replacement: 'Netscape' | |
43 | |
44 - regex: '(Navigator)/(\d+)\.(\d+)([ab]\d+)' | |
45 family_replacement: 'Netscape' | |
46 | |
47 - regex: '(Netscape6)/(\d+)\.(\d+)\.(\d+)' | |
48 family_replacement: 'Netscape' | |
49 | |
50 - regex: '(MyIBrow)/(\d+)\.(\d+)' | |
51 family_replacement: 'My Internet Browser' | |
52 | |
53 # Opera will stop at 9.80 and hide the real version in the Version string. | |
54 # see: http://dev.opera.com/articles/view/opera-ua-string-changes/ | |
55 - regex: '(Opera Tablet).*Version/(\d+)\.(\d+)(?:\.(\d+))?' | |
56 - regex: '(Opera)/.+Opera Mobi.+Version/(\d+)\.(\d+)' | |
57 family_replacement: 'Opera Mobile' | |
58 - regex: 'Opera Mobi' | |
59 family_replacement: 'Opera Mobile' | |
60 - regex: '(Opera Mini)/(\d+)\.(\d+)' | |
61 - regex: '(Opera Mini)/att/(\d+)\.(\d+)' | |
62 - regex: '(Opera)/9.80.*Version/(\d+)\.(\d+)(?:\.(\d+))?' | |
63 | |
64 # Opera 14 for Android uses a WebKit render engine. | |
65 - regex: '(?:Mobile Safari).*(OPR)/(\d+)\.(\d+)\.(\d+)' | |
66 family_replacement: 'Opera Mobile' | |
67 | |
68 # Palm WebOS looks a lot like Safari. | |
69 - regex: '(hpw|web)OS/(\d+)\.(\d+)(?:\.(\d+))?' | |
70 family_replacement: 'webOS Browser' | |
71 | |
72 # LuaKit has no version info. | |
73 # http://luakit.org/projects/luakit/ | |
74 - regex: '(luakit)' | |
75 family_replacement: 'LuaKit' | |
76 | |
77 # Snowshoe | |
78 - regex: '(Snowshoe)/(\d+)\.(\d+).(\d+)' | |
79 | |
80 # Lightning (for Thunderbird) | |
81 # http://www.mozilla.org/projects/calendar/lightning/ | |
82 - regex: '(Lightning)/(\d+)\.(\d+)([ab]?\d+[a-z]*)' | |
83 | |
84 # Swiftfox | |
85 - regex: '(Firefox)/(\d+)\.(\d+)\.(\d+(?:pre)?) \(Swiftfox\)' | |
86 family_replacement: 'Swiftfox' | |
87 - regex: '(Firefox)/(\d+)\.(\d+)([ab]\d+[a-z]*)? \(Swiftfox\)' | |
88 family_replacement: 'Swiftfox' | |
89 | |
90 # Rekonq | |
91 - regex: '(rekonq)/(\d+)\.(\d+) Safari' | |
92 family_replacement: 'Rekonq' | |
93 - regex: 'rekonq' | |
94 family_replacement: 'Rekonq' | |
95 | |
96 # Conkeror lowercase/uppercase | |
97 # http://conkeror.org/ | |
98 - regex: '(conkeror|Conkeror)/(\d+)\.(\d+)\.?(\d+)?' | |
99 family_replacement: 'Conkeror' | |
100 | |
101 # catches lower case konqueror | |
102 - regex: '(konqueror)/(\d+)\.(\d+)\.(\d+)' | |
103 family_replacement: 'Konqueror' | |
104 | |
105 - regex: '(WeTab)-Browser' | |
106 | |
107 - regex: '(Comodo_Dragon)/(\d+)\.(\d+)\.(\d+)' | |
108 family_replacement: 'Comodo Dragon' | |
109 | |
110 # Bots | |
111 - regex: '(YottaaMonitor|BrowserMob|HttpMonitor|YandexBot|Slurp|BingPreview|PagePeeker|ThumbShotsBot|WebThumb|URL2PNG|ZooShot|GomezA|Catchpoint bot|Willow Internet Crawler|Google SketchUp|Read%20Later)' | |
112 | |
113 - regex: '(Symphony) (\d+).(\d+)' | |
114 | |
115 - regex: '(Minimo)' | |
116 | |
117 # Chrome Mobile | |
118 - regex: '(CrMo)/(\d+)\.(\d+)\.(\d+)\.(\d+)' | |
119 family_replacement: 'Chrome Mobile' | |
120 - regex: '(CriOS)/(\d+)\.(\d+)\.(\d+)\.(\d+)' | |
121 family_replacement: 'Chrome Mobile iOS' | |
122 - regex: '(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+) Mobile' | |
123 family_replacement: 'Chrome Mobile' | |
124 | |
125 # Chrome Frame must come before MSIE. | |
126 - regex: '(chromeframe)/(\d+)\.(\d+)\.(\d+)' | |
127 family_replacement: 'Chrome Frame' | |
128 | |
129 # UC Browser | |
130 - regex: '(UCBrowser)[ /](\d+)\.(\d+)\.(\d+)' | |
131 family_replacement: 'UC Browser' | |
132 - regex: '(UC Browser)[ /](\d+)\.(\d+)\.(\d+)' | |
133 - regex: '(UC Browser|UCBrowser|UCWEB)(\d+)\.(\d+)\.(\d+)' | |
134 family_replacement: 'UC Browser' | |
135 | |
136 # Tizen Browser (second case included in browser/major.minor regex) | |
137 - regex: '(SLP Browser)/(\d+)\.(\d+)' | |
138 family_replacement: 'Tizen Browser' | |
139 | |
140 # Epiphany browser (identifies as Chromium) | |
141 - regex: '(Epiphany)/(\d+)\.(\d+).(\d+)' | |
142 | |
143 # Sogou Explorer 2.X | |
144 - regex: '(SE 2\.X) MetaSr (\d+)\.(\d+)' | |
145 family_replacement: 'Sogou Explorer' | |
146 | |
147 # Baidu Browsers (desktop spoofs chrome & IE, explorer is mobile) | |
148 - regex: '(baidubrowser)[/\s](\d+)' | |
149 family_replacement: 'Baidu Browser' | |
150 - regex: '(FlyFlow)/(\d+)\.(\d+)' | |
151 family_replacement: 'Baidu Explorer' | |
152 | |
153 # Pingdom | |
154 - regex: '(Pingdom.com_bot_version_)(\d+)\.(\d+)' | |
155 family_replacement: 'PingdomBot' | |
156 | |
157 # Facebook | |
158 - regex: '(facebookexternalhit)/(\d+)\.(\d+)' | |
159 family_replacement: 'FacebookBot' | |
160 | |
161 # Twitterbot | |
162 - regex: '(Twitterbot)/(\d+)\.(\d+)' | |
163 family_replacement: 'TwitterBot' | |
164 | |
165 # Rackspace Monitoring | |
166 - regex: '(Rackspace Monitoring)/(\d+)\.(\d+)' | |
167 family_replacement: 'RackspaceBot' | |
168 | |
169 # PyAMF | |
170 - regex: '(PyAMF)/(\d+)\.(\d+)\.(\d+)' | |
171 | |
172 # Yandex Browser | |
173 - regex: '(YaBrowser)/(\d+)\.(\d+)\.(\d+)' | |
174 family_replacement: 'Yandex Browser' | |
175 | |
176 # Mail.ru Amigo/Internet Browser (Chromium-based) | |
177 - regex: '(Chrome)/(\d+)\.(\d+)\.(\d+).* MRCHROME' | |
178 family_replacement: 'Mail.ru Chromium Browser' | |
179 | |
180 #### END SPECIAL CASES TOP #### | |
181 | |
182 #### MAIN CASES - this catches > 50% of all browsers #### | |
183 | |
184 # Browser/major_version.minor_version.beta_version | |
185 - regex: '(AdobeAIR|Chromium|FireWeb|Jasmine|ANTGalio|Midori|Fresco|Lobo|PaleMoon|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Shiira|Sunrise|Chrome|Flock|Netscape|Lunascape|WebPilot|Vodafone|NetFront|Netfront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|ThunderBrowse|Iris|UP\.Browser|Bunjalloo|Google Earth|Raven for Mac|Openwave)/(\d+)\.(\d+)\.(\d+)' | |
186 | |
187 # Browser/major_version.minor_version | |
188 - regex: '(Bolt|Jasmine|IceCat|Skyfire|Midori|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|Vodafone|NetFront|Netfront|Konqueror|Googlebot|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|NetNewsWire|Space Bison|Stainless|Orca|Dolfin|BOLT|Minimo|Tizen Browser|Polaris|Abrowser|Planetweb|ICE Browser)/(\d+)\.(\d+)' | |
189 | |
190 # Browser major_version.minor_version.beta_version (space instead of slash) | |
191 - regex: '(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\d+)\.(\d+)\.(\d+)' | |
192 # Browser major_version.minor_version (space instead of slash) | |
193 - regex: '(iCab|Lunascape|Opera|Android|Jasmine|Polaris) (\d+)\.(\d+)\.?(\d+)?' | |
194 | |
195 # Kindle WebKit | |
196 - regex: '(Kindle)/(\d+)\.(\d+)' | |
197 | |
198 # weird android UAs | |
199 - regex: '(Android) Donut' | |
200 v1_replacement: '1' | |
201 v2_replacement: '2' | |
202 | |
203 - regex: '(Android) Eclair' | |
204 v1_replacement: '2' | |
205 v2_replacement: '1' | |
206 | |
207 - regex: '(Android) Froyo' | |
208 v1_replacement: '2' | |
209 v2_replacement: '2' | |
210 | |
211 - regex: '(Android) Gingerbread' | |
212 v1_replacement: '2' | |
213 v2_replacement: '3' | |
214 | |
215 - regex: '(Android) Honeycomb' | |
216 v1_replacement: '3' | |
217 | |
218 # IE Mobile | |
219 - regex: '(IEMobile)[ /](\d+)\.(\d+)' | |
220 family_replacement: 'IE Mobile' | |
221 # desktop mode | |
222 # http://www.anandtech.com/show/3982/windows-phone-7-review | |
223 - regex: '(MSIE) (\d+)\.(\d+).*XBLWP7' | |
224 family_replacement: 'IE Large Screen' | |
225 | |
226 # AFTER THE EDGE CASES ABOVE! | |
227 - regex: '(Firefox)/(\d+)\.(\d+)\.(\d+)' | |
228 - regex: '(Firefox)/(\d+)\.(\d+)(pre|[ab]\d+[a-z]*)?' | |
229 | |
230 #### END MAIN CASES #### | |
231 | |
232 #### SPECIAL CASES #### | |
233 - regex: '(Obigo)InternetBrowser' | |
234 - regex: '(Obigo)\-Browser' | |
235 - regex: '(Obigo|OBIGO)[^\d]*(\d+)(?:.(\d+))?' | |
236 family_replacement: 'Obigo' | |
237 | |
238 - regex: '(MAXTHON|Maxthon) (\d+)\.(\d+)' | |
239 family_replacement: 'Maxthon' | |
240 - regex: '(Maxthon|MyIE2|Uzbl|Shiira)' | |
241 v1_replacement: '0' | |
242 | |
243 - regex: 'PLAYSTATION 3.+WebKit' | |
244 family_replacement: 'NetFront NX' | |
245 - regex: 'PLAYSTATION 3' | |
246 family_replacement: 'NetFront' | |
247 - regex: '(PlayStation Portable)' | |
248 family_replacement: 'NetFront' | |
249 - regex: '(PlayStation Vita)' | |
250 family_replacement: 'NetFront NX' | |
251 | |
252 - regex: 'AppleWebKit.+ (NX)/(\d+)\.(\d+)\.(\d+)' | |
253 family_replacement: 'NetFront NX' | |
254 - regex: '(Nintendo 3DS)' | |
255 family_replacement: 'NetFront NX' | |
256 | |
257 - regex: '(BrowseX) \((\d+)\.(\d+)\.(\d+)' | |
258 | |
259 - regex: '(NCSA_Mosaic)/(\d+)\.(\d+)' | |
260 family_replacement: 'NCSA Mosaic' | |
261 | |
262 # Polaris/d.d is above | |
263 - regex: '(POLARIS)/(\d+)\.(\d+)' | |
264 family_replacement: 'Polaris' | |
265 - regex: '(Embider)/(\d+)\.(\d+)' | |
266 family_replacement: 'Polaris' | |
267 | |
268 - regex: '(BonEcho)/(\d+)\.(\d+)\.(\d+)' | |
269 family_replacement: 'Bon Echo' | |
270 | |
271 - regex: 'M?QQBrowser' | |
272 family_replacement: 'QQ Browser' | |
273 | |
274 - regex: '(iPod).+Version/(\d+)\.(\d+)\.(\d+)' | |
275 family_replacement: 'Mobile Safari' | |
276 - regex: '(iPod).*Version/(\d+)\.(\d+)' | |
277 family_replacement: 'Mobile Safari' | |
278 - regex: '(iPhone).*Version/(\d+)\.(\d+)\.(\d+)' | |
279 family_replacement: 'Mobile Safari' | |
280 - regex: '(iPhone).*Version/(\d+)\.(\d+)' | |
281 family_replacement: 'Mobile Safari' | |
282 - regex: '(iPad).*Version/(\d+)\.(\d+)\.(\d+)' | |
283 family_replacement: 'Mobile Safari' | |
284 - regex: '(iPad).*Version/(\d+)\.(\d+)' | |
285 family_replacement: 'Mobile Safari' | |
286 - regex: '(iPod|iPhone|iPad);.*CPU.*OS (\d+)(?:_\d+)?_(\d+).*Mobile' | |
287 family_replacement: 'Mobile Safari' | |
288 - regex: '(iPod|iPhone|iPad)' | |
289 family_replacement: 'Mobile Safari' | |
290 | |
291 - regex: '(AvantGo) (\d+).(\d+)' | |
292 | |
293 - regex: '(OneBrowser)/(\d+).(\d+)' | |
294 family_replacement: 'ONE Browser' | |
295 | |
296 - regex: '(Avant)' | |
297 v1_replacement: '1' | |
298 | |
299 # This is the Tesla Model S (see similar entry in device parsers) | |
300 - regex: '(QtCarBrowser)' | |
301 v1_replacement: '1' | |
302 | |
303 - regex: '(iBrowser/Mini)(\d+).(\d+)' | |
304 family_replacement: 'iBrowser Mini' | |
305 # nokia browsers | |
306 # based on: http://www.developer.nokia.com/Community/Wiki/User-Agent_headers_for_Nokia_devices | |
307 - regex: '^(Nokia)' | |
308 family_replacement: 'Nokia Services (WAP) Browser' | |
309 - regex: '(NokiaBrowser)/(\d+)\.(\d+).(\d+)\.(\d+)' | |
310 family_replacement: 'Nokia Browser' | |
311 - regex: '(NokiaBrowser)/(\d+)\.(\d+).(\d+)' | |
312 family_replacement: 'Nokia Browser' | |
313 - regex: '(NokiaBrowser)/(\d+)\.(\d+)' | |
314 family_replacement: 'Nokia Browser' | |
315 - regex: '(BrowserNG)/(\d+)\.(\d+).(\d+)' | |
316 family_replacement: 'Nokia Browser' | |
317 - regex: '(Series60)/5\.0' | |
318 family_replacement: 'Nokia Browser' | |
319 v1_replacement: '7' | |
320 v2_replacement: '0' | |
321 - regex: '(Series60)/(\d+)\.(\d+)' | |
322 family_replacement: 'Nokia OSS Browser' | |
323 - regex: '(S40OviBrowser)/(\d+)\.(\d+)\.(\d+)\.(\d+)' | |
324 family_replacement: 'Ovi Browser' | |
325 - regex: '(Nokia)[EN]?(\d+)' | |
326 | |
327 # BlackBerry devices | |
328 - regex: '(BB10);' | |
329 family_replacement: 'BlackBerry WebKit' | |
330 - regex: '(PlayBook).+RIM Tablet OS (\d+)\.(\d+)\.(\d+)' | |
331 family_replacement: 'BlackBerry WebKit' | |
332 - regex: '(Black[bB]erry).+Version/(\d+)\.(\d+)\.(\d+)' | |
333 family_replacement: 'BlackBerry WebKit' | |
334 - regex: '(Black[bB]erry)\s?(\d+)' | |
335 family_replacement: 'BlackBerry' | |
336 | |
337 - regex: '(OmniWeb)/v(\d+)\.(\d+)' | |
338 | |
339 - regex: '(Blazer)/(\d+)\.(\d+)' | |
340 family_replacement: 'Palm Blazer' | |
341 | |
342 - regex: '(Pre)/(\d+)\.(\d+)' | |
343 family_replacement: 'Palm Pre' | |
344 | |
345 - regex: '(Links) \((\d+)\.(\d+)' | |
346 | |
347 - regex: '(QtWeb) Internet Browser/(\d+)\.(\d+)' | |
348 | |
349 #- regex: '\(iPad;.+(Version)/(\d+)\.(\d+)(?:\.(\d+))?.*Safari/' | |
350 # family_replacement: 'iPad' | |
351 | |
352 # Amazon Silk, should go before Safari | |
353 - regex: '(Silk)/(\d+)\.(\d+)(?:\.([0-9\-]+))?' | |
354 family_replacement: 'Amazon Silk' | |
355 | |
356 # Phantomjs, should go before Safari | |
357 - regex: '(PhantomJS)/(\d+)\.(\d+)\.(\d+)' | |
358 | |
359 # WebKit Nightly | |
360 - regex: '(AppleWebKit)/(\d+)\.?(\d+)?\+ .* Safari' | |
361 family_replacement: 'WebKit Nightly' | |
362 | |
363 # Safari | |
364 - regex: '(Version)/(\d+)\.(\d+)(?:\.(\d+))?.*Safari/' | |
365 family_replacement: 'Safari' | |
366 # Safari didn't provide "Version/d.d.d" prior to 3.0 | |
367 - regex: '(Safari)/\d+' | |
368 | |
369 - regex: '(OLPC)/Update(\d+)\.(\d+)' | |
370 | |
371 - regex: '(OLPC)/Update()\.(\d+)' | |
372 v1_replacement: '0' | |
373 | |
374 - regex: '(SEMC\-Browser)/(\d+)\.(\d+)' | |
375 | |
376 - regex: '(Teleca)' | |
377 family_replacement: 'Teleca Browser' | |
378 | |
379 - regex: '(Phantom)/V(\d+)\.(\d+)' | |
380 family_replacement: 'Phantom Browser' | |
381 | |
382 - regex: '([MS]?IE) (\d+)\.(\d+)' | |
383 family_replacement: 'IE' | |
384 | |
385 - regex: '(python-requests)/(\d+)\.(\d+)' | |
386 family_replacement: 'Python Requests' | |
387 | |
388 os_parsers: | |
389 | |
390 ########## | |
391 # Android | |
392 # can actually detect rooted android os. do we care? | |
393 ########## | |
394 - regex: '(Android) (\d+)\.(\d+)(?:[.\-]([a-z0-9]+))?' | |
395 - regex: '(Android)\-(\d+)\.(\d+)(?:[.\-]([a-z0-9]+))?' | |
396 | |
397 - regex: '(Android) Donut' | |
398 os_v1_replacement: '1' | |
399 os_v2_replacement: '2' | |
400 | |
401 - regex: '(Android) Eclair' | |
402 os_v1_replacement: '2' | |
403 os_v2_replacement: '1' | |
404 | |
405 - regex: '(Android) Froyo' | |
406 os_v1_replacement: '2' | |
407 os_v2_replacement: '2' | |
408 | |
409 - regex: '(Android) Gingerbread' | |
410 os_v1_replacement: '2' | |
411 os_v2_replacement: '3' | |
412 | |
413 - regex: '(Android) Honeycomb' | |
414 os_v1_replacement: '3' | |
415 | |
416 ########## | |
417 # Kindle Android | |
418 ########## | |
419 - regex: '(Silk-Accelerated=[a-z]{4,5})' | |
420 os_replacement: 'Android' | |
421 | |
422 ########## | |
423 # Windows | |
424 # http://en.wikipedia.org/wiki/Windows_NT#Releases | |
425 # possibility of false positive when different marketing names share same NT kernel | |
426 # e.g. windows server 2003 and windows xp | |
427 # lots of ua strings have Windows NT 4.1 !?!?!?!? !?!? !? !????!?! !!! ??? !?!?! ? | |
428 # (very) roughly ordered in terms of frequency of occurence of regex (win xp currently most frequent, etc) | |
429 ########## | |
430 | |
431 - regex: '(Windows (?:NT 5\.2|NT 5\.1))' | |
432 os_replacement: 'Windows XP' | |
433 | |
434 # ie mobile des ktop mode | |
435 # spoofs nt 6.1. must come before windows 7 | |
436 - regex: '(XBLWP7)' | |
437 os_replacement: 'Windows Phone' | |
438 | |
439 - regex: '(Windows NT 6\.1)' | |
440 os_replacement: 'Windows 7' | |
441 | |
442 - regex: '(Windows NT 6\.0)' | |
443 os_replacement: 'Windows Vista' | |
444 | |
445 - regex: '(Windows 98|Windows XP|Windows ME|Windows 95|Windows CE|Windows 7|Windows NT 4\.0|Windows Vista|Windows 2000|Windows 3.1)' | |
446 | |
447 - regex: '(Windows NT 6\.2; ARM;)' | |
448 os_replacement: 'Windows RT' | |
449 | |
450 # is this a spoof or is nt 6.2 out and about in some capacity? | |
451 - regex: '(Windows NT 6\.2)' | |
452 os_replacement: 'Windows 8' | |
453 | |
454 - regex: '(Windows NT 5\.0)' | |
455 os_replacement: 'Windows 2000' | |
456 | |
457 - regex: '(Windows Phone) (\d+)\.(\d+)' | |
458 - regex: '(Windows Phone) OS (\d+)\.(\d+)' | |
459 - regex: '(Windows ?Mobile)' | |
460 os_replacement: 'Windows Mobile' | |
461 | |
462 - regex: '(WinNT4.0)' | |
463 os_replacement: 'Windows NT 4.0' | |
464 | |
465 - regex: '(Win98)' | |
466 os_replacement: 'Windows 98' | |
467 | |
468 ########## | |
469 # Tizen OS from Samsung | |
470 # spoofs Android so pushing it above | |
471 ########## | |
472 - regex: '(Tizen)/(\d+)\.(\d+)' | |
473 | |
474 ########## | |
475 # Mac OS | |
476 # http://en.wikipedia.org/wiki/Mac_OS_X#Versions | |
477 ########## | |
478 - regex: '(Mac OS X) (\d+)[_.](\d+)(?:[_.](\d+))?' | |
479 | |
480 # IE on Mac doesn't specify version number | |
481 - regex: 'Mac_PowerPC' | |
482 os_replacement: 'Mac OS' | |
483 | |
484 # builds before tiger don't seem to specify version? | |
485 | |
486 # ios devices spoof (mac os x), so including intel/ppc prefixes | |
487 - regex: '(?:PPC|Intel) (Mac OS X)' | |
488 | |
489 ########## | |
490 # iOS | |
491 # http://en.wikipedia.org/wiki/IOS_version_history | |
492 ########## | |
493 - regex: '(CPU OS|iPhone OS) (\d+)_(\d+)(?:_(\d+))?' | |
494 os_replacement: 'iOS' | |
495 | |
496 # remaining cases are mostly only opera uas, so catch opera as to not catch iphone spoofs | |
497 - regex: '(iPhone|iPad|iPod); Opera' | |
498 os_replacement: 'iOS' | |
499 | |
500 # few more stragglers | |
501 - regex: '(iPhone|iPad|iPod).*Mac OS X.*Version/(\d+)\.(\d+)' | |
502 os_replacement: 'iOS' | |
503 | |
504 - regex: '(AppleTV)/(\d+)\.(\d+)' | |
505 os_replacement: 'ATV OS X' | |
506 os_v1_replacement: '$1' | |
507 os_v2_replacement: '$2' | |
508 | |
509 ########## | |
510 # Chrome OS | |
511 # if version 0.0.0, probably this stuff: | |
512 # http://code.google.com/p/chromium-os/issues/detail?id=11573 | |
513 # http://code.google.com/p/chromium-os/issues/detail?id=13790 | |
514 ########## | |
515 - regex: '(CrOS) [a-z0-9_]+ (\d+)\.(\d+)(?:\.(\d+))?' | |
516 os_replacement: 'Chrome OS' | |
517 | |
518 ########## | |
519 # Linux distros | |
520 ########## | |
521 - regex: '(Debian)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?' | |
522 - regex: '(Linux Mint)(?:/(\d+))?' | |
523 - regex: '(Mandriva)(?: Linux)?/(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?' | |
524 | |
525 ########## | |
526 # Symbian + Symbian OS | |
527 # http://en.wikipedia.org/wiki/History_of_Symbian | |
528 ########## | |
529 - regex: '(Symbian[Oo][Ss])/(\d+)\.(\d+)' | |
530 os_replacement: 'Symbian OS' | |
531 - regex: '(Symbian/3).+NokiaBrowser/7\.3' | |
532 os_replacement: 'Symbian^3 Anna' | |
533 - regex: '(Symbian/3).+NokiaBrowser/7\.4' | |
534 os_replacement: 'Symbian^3 Belle' | |
535 - regex: '(Symbian/3)' | |
536 os_replacement: 'Symbian^3' | |
537 - regex: '(Series 60|SymbOS|S60)' | |
538 os_replacement: 'Symbian OS' | |
539 - regex: '(MeeGo)' | |
540 - regex: 'Symbian [Oo][Ss]' | |
541 os_replacement: 'Symbian OS' | |
542 - regex: 'Series40;' | |
543 os_replacement: 'Nokia Series 40' | |
544 | |
545 ########## | |
546 # BlackBerry devices | |
547 ########## | |
548 - regex: '(BB10);.+Version/(\d+)\.(\d+)\.(\d+)' | |
549 os_replacement: 'BlackBerry OS' | |
550 - regex: '(Black[Bb]erry)[0-9a-z]+/(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?' | |
551 os_replacement: 'BlackBerry OS' | |
552 - regex: '(Black[Bb]erry).+Version/(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?' | |
553 os_replacement: 'BlackBerry OS' | |
554 - regex: '(RIM Tablet OS) (\d+)\.(\d+)\.(\d+)' | |
555 os_replacement: 'BlackBerry Tablet OS' | |
556 - regex: '(Play[Bb]ook)' | |
557 os_replacement: 'BlackBerry Tablet OS' | |
558 - regex: '(Black[Bb]erry)' | |
559 os_replacement: 'BlackBerry OS' | |
560 | |
561 ########## | |
562 # Firefox OS | |
563 ########## | |
564 - regex: '\(Mobile;.+Firefox/\d+\.\d+' | |
565 os_replacement: 'Firefox OS' | |
566 | |
567 ########## | |
568 # BREW | |
569 # yes, Brew is lower-cased for Brew MP | |
570 ########## | |
571 - regex: '(BREW)[ /](\d+)\.(\d+)\.(\d+)' | |
572 - regex: '(BREW);' | |
573 - regex: '(Brew MP|BMP)[ /](\d+)\.(\d+)\.(\d+)' | |
574 os_replacement: 'Brew MP' | |
575 - regex: 'BMP;' | |
576 os_replacement: 'Brew MP' | |
577 | |
578 ########## | |
579 # Google TV | |
580 ########## | |
581 - regex: '(GoogleTV) (\d+)\.(\d+)\.(\d+)' | |
582 # Old style | |
583 - regex: '(GoogleTV)\/\d+' | |
584 | |
585 - regex: '(WebTV)/(\d+).(\d+)' | |
586 | |
587 ########## | |
588 # Misc mobile | |
589 ########## | |
590 - regex: '(hpw|web)OS/(\d+)\.(\d+)(?:\.(\d+))?' | |
591 os_replacement: 'webOS' | |
592 - regex: '(VRE);' | |
593 | |
594 ########## | |
595 # Generic patterns | |
596 # since the majority of os cases are very specific, these go last | |
597 ########## | |
598 # first.second.third.fourth bits | |
599 - regex: '(SUSE|Fedora|Red Hat|PCLinuxOS)/(\d+)\.(\d+)\.(\d+)\.(\d+)' | |
600 | |
601 # first.second.third bits | |
602 - regex: '(SUSE|Fedora|Red Hat|Puppy|PCLinuxOS|CentOS)/(\d+)\.(\d+)\.(\d+)' | |
603 | |
604 # first.second bits | |
605 - regex: '(Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Red Hat|Slackware)/(\d+)\.(\d+)' | |
606 | |
607 # just os | |
608 - regex: '(Windows|OpenBSD|FreeBSD|NetBSD|Ubuntu|Kubuntu|Android|Arch Linux|CentOS|WeTab|Slackware)' | |
609 - regex: '(Linux)/(\d+)\.(\d+)' | |
610 - regex: '(Linux|BSD)' | |
611 - regex: 'SunOS' | |
612 os_replacement: 'Solaris' | |
613 | |
614 device_parsers: | |
615 ########## | |
616 # incomplete! | |
617 # multiple replacement placeholds i.e. ($1) ($2) help solve problem of single device with multiple representations in ua | |
618 # e.g. HTC Dream S should parse to the same device as HTC_DreamS | |
619 ########## | |
620 | |
621 ########## | |
622 # incomplete! | |
623 # HTC | |
624 # http://en.wikipedia.org/wiki/List_of_HTC_phones | |
625 # this is quickly getting unwieldy | |
626 ########## | |
627 # example: Mozilla/5.0 (Linux; U; Android 2.3.2; fr-fr; HTC HD2 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 | |
628 - regex: 'HTC ([A-Z][a-z0-9]+) Build' | |
629 device_replacement: 'HTC $1' | |
630 # example: Mozilla/5.0 (Linux; U; Android 2.1; es-es; HTC Legend 1.23.161.1 Build/ERD79) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17,gzip | |
631 - regex: 'HTC ([A-Z][a-z0-9 ]+) \d+\.\d+\.\d+\.\d+' | |
632 device_replacement: 'HTC $1' | |
633 # example: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; HTC_Touch_Diamond2_T5353; Windows Phone 6.5.3.5) | |
634 - regex: 'HTC_Touch_([A-Za-z0-9]+)' | |
635 device_replacement: 'HTC Touch ($1)' | |
636 # should come after HTC_Touch | |
637 - regex: 'USCCHTC(\d+)' | |
638 device_replacement: 'HTC $1 (US Cellular)' | |
639 - regex: 'Sprint APA(9292)' | |
640 device_replacement: 'HTC $1 (Sprint)' | |
641 - regex: 'HTC ([A-Za-z0-9]+ [A-Z])' | |
642 device_replacement: 'HTC $1' | |
643 - regex: 'HTC[-_/\s]([A-Za-z0-9]+)' | |
644 device_replacement: 'HTC $1' | |
645 - regex: '(ADR[A-Za-z0-9]+)' | |
646 device_replacement: 'HTC $1' | |
647 - regex: '(HTC)' | |
648 | |
649 # Tesla Model S | |
650 - regex: '(QtCarBrowser)' | |
651 device_replacement: 'Tesla Model S' | |
652 | |
653 # Samsung | |
654 - regex: '(SamsungSGHi560)' | |
655 device_replacement: 'Samsung SGHi560' | |
656 | |
657 ######### | |
658 # Ericsson - must come before nokia since they also use symbian | |
659 ######### | |
660 - regex: 'SonyEricsson([A-Za-z0-9]+)/' | |
661 device_replacement: 'Ericsson $1' | |
662 | |
663 ########## | |
664 # PlayStation | |
665 # The Vita spoofs the Kindle | |
666 ########## | |
667 - regex: 'PLAYSTATION 3' | |
668 device_replacement: 'PlayStation 3' | |
669 - regex: '(PlayStation Portable)' | |
670 - regex: '(PlayStation Vita)' | |
671 | |
672 ########## | |
673 # incomplete! | |
674 # Kindle | |
675 # http://amazonsilk.wordpress.com/useful-bits/silk-user-agent/ | |
676 ########## | |
677 - regex: '(KFOT Build)' | |
678 device_replacement: 'Kindle Fire' | |
679 - regex: '(KFTT Build)' | |
680 device_replacement: 'Kindle Fire HD' | |
681 - regex: '(KFJWI Build)' | |
682 device_replacement: 'Kindle Fire HD 8.9" WiFi' | |
683 - regex: '(KFJWA Build)' | |
684 device_replacement: 'Kindle Fire HD 8.9" 4G' | |
685 - regex: '(Kindle Fire)' | |
686 - regex: '(Kindle)' | |
687 - regex: '(Silk)/(\d+)\.(\d+)(?:\.([0-9\-]+))?' | |
688 device_replacement: 'Kindle Fire' | |
689 | |
690 ######### | |
691 # Android General Device Matching (far from perfect) | |
692 ######### | |
693 - regex: 'Android[\- ][\d]+\.[\d]+; [A-Za-z]{2}\-[A-Za-z]{2}; WOWMobile (.+) Build' | |
694 - regex: 'Android[\- ][\d]+\.[\d]+\-update1; [A-Za-z]{2}\-[A-Za-z]{2}; (.+) Build' | |
695 - regex: 'Android[\- ][\d]+\.[\d]+\.[\d]+; [A-Za-z]{2}\-[A-Za-z]{2}; (.+) Build' | |
696 - regex: 'Android[\- ][\d]+\.[\d]+\.[\d]+;[A-Za-z]{2}\-[A-Za-z]{2};(.+) Build' | |
697 - regex: 'Android[\- ][\d]+\.[\d]+; [A-Za-z]{2}\-[A-Za-z]{2}; (.+) Build' | |
698 - regex: 'Android[\- ][\d]+\.[\d]+\.[\d]+; (.+) Build' | |
699 - regex: 'Android[\- ][\d]+\.[\d]+; (.+) Build' | |
700 | |
701 ########## | |
702 # NOKIA | |
703 # nokia NokiaN8-00 comes before iphone. sometimes spoofs iphone | |
704 ########## | |
705 - regex: 'NokiaN([0-9]+)' | |
706 device_replacement: 'Nokia N$1' | |
707 - regex: 'NOKIA([A-Za-z0-9\v-]+)' | |
708 device_replacement: 'Nokia $1' | |
709 - regex: 'Nokia([A-Za-z0-9\v-]+)' | |
710 device_replacement: 'Nokia $1' | |
711 - regex: 'NOKIA ([A-Za-z0-9\-]+)' | |
712 device_replacement: 'Nokia $1' | |
713 - regex: 'Nokia ([A-Za-z0-9\-]+)' | |
714 device_replacement: 'Nokia $1' | |
715 - regex: 'Lumia ([A-Za-z0-9\-]+)' | |
716 device_replacement: 'Lumia $1' | |
717 - regex: 'Symbian' | |
718 device_replacement: 'Nokia' | |
719 | |
720 ########## | |
721 # BlackBerry | |
722 # http://www.useragentstring.com/pages/BlackBerry/ | |
723 ########## | |
724 - regex: 'BB10; ([A-Za-z0-9\- ]+)\)' | |
725 device_replacement: 'BlackBerry $1' | |
726 - regex: '(PlayBook).+RIM Tablet OS' | |
727 device_replacement: 'BlackBerry Playbook' | |
728 - regex: 'Black[Bb]erry ([0-9]+);' | |
729 device_replacement: 'BlackBerry $1' | |
730 - regex: 'Black[Bb]erry([0-9]+)' | |
731 device_replacement: 'BlackBerry $1' | |
732 - regex: 'Black[Bb]erry;' | |
733 device_replacement: 'BlackBerry' | |
734 | |
735 ########## | |
736 # PALM / HP | |
737 ########## | |
738 # some palm devices must come before iphone. sometimes spoofs iphone in ua | |
739 - regex: '(Pre)/(\d+)\.(\d+)' | |
740 device_replacement: 'Palm Pre' | |
741 - regex: '(Pixi)/(\d+)\.(\d+)' | |
742 device_replacement: 'Palm Pixi' | |
743 - regex: '(Touch[Pp]ad)/(\d+)\.(\d+)' | |
744 device_replacement: 'HP TouchPad' | |
745 - regex: 'HPiPAQ([A-Za-z0-9]+)/(\d+).(\d+)' | |
746 device_replacement: 'HP iPAQ $1' | |
747 - regex: 'Palm([A-Za-z0-9]+)' | |
748 device_replacement: 'Palm $1' | |
749 - regex: 'Treo([A-Za-z0-9]+)' | |
750 device_replacement: 'Palm Treo $1' | |
751 - regex: 'webOS.*(P160UNA)/(\d+).(\d+)' | |
752 device_replacement: 'HP Veer' | |
753 | |
754 ########## | |
755 # AppleTV | |
756 # No built in browser that I can tell | |
757 # Stack Overflow indicated iTunes-AppleTV/4.1 as a known UA for app available and I'm seeing it in live traffic | |
758 ########## | |
759 - regex: '(AppleTV)' | |
760 device_replacement: 'AppleTV' | |
761 | |
762 ########## | |
763 # Catch the google mobile crawler before checking for iPhones. | |
764 ########## | |
765 | |
766 - regex: 'AdsBot-Google-Mobile' | |
767 device_replacement: 'Spider' | |
768 | |
769 - regex: 'Googlebot-Mobile/(\d+).(\d+)' | |
770 device_replacement: 'Spider' | |
771 | |
772 ########## | |
773 # complete but probably catches spoofs | |
774 # iSTUFF | |
775 ########## | |
776 # ipad and ipod must be parsed before iphone | |
777 # cannot determine specific device type from ua string. (3g, 3gs, 4, etc) | |
778 - regex: '(iPad) Simulator;' | |
779 - regex: '(iPad);' | |
780 - regex: '(iPod);' | |
781 - regex: '(iPhone) Simulator;' | |
782 - regex: '(iPhone);' | |
783 | |
784 ########## | |
785 # Acer | |
786 ########## | |
787 - regex: 'acer_([A-Za-z0-9]+)_' | |
788 device_replacement: 'Acer $1' | |
789 - regex: 'acer_([A-Za-z0-9]+)_' | |
790 device_replacement: 'Acer $1' | |
791 | |
792 ########## | |
793 # Alcatel | |
794 ########## | |
795 - regex: 'ALCATEL-([A-Za-z0-9]+)' | |
796 device_replacement: 'Alcatel $1' | |
797 - regex: 'Alcatel-([A-Za-z0-9]+)' | |
798 device_replacement: 'Alcatel $1' | |
799 | |
800 ########## | |
801 # Amoi | |
802 ########## | |
803 - regex: 'Amoi\-([A-Za-z0-9]+)' | |
804 device_replacement: 'Amoi $1' | |
805 - regex: 'AMOI\-([A-Za-z0-9]+)' | |
806 device_replacement: 'Amoi $1' | |
807 | |
808 ########## | |
809 # Amoi | |
810 ########## | |
811 - regex: 'Asus\-([A-Za-z0-9]+)' | |
812 device_replacement: 'Asus $1' | |
813 - regex: 'ASUS\-([A-Za-z0-9]+)' | |
814 device_replacement: 'Asus $1' | |
815 | |
816 ########## | |
817 # Bird | |
818 ########## | |
819 - regex: 'BIRD\-([A-Za-z0-9]+)' | |
820 device_replacement: 'Bird $1' | |
821 - regex: 'BIRD\.([A-Za-z0-9]+)' | |
822 device_replacement: 'Bird $1' | |
823 - regex: 'BIRD ([A-Za-z0-9]+)' | |
824 device_replacement: 'Bird $1' | |
825 | |
826 ########## | |
827 # Dell | |
828 ########## | |
829 - regex: 'Dell ([A-Za-z0-9]+)' | |
830 device_replacement: 'Dell $1' | |
831 | |
832 ########## | |
833 # DoCoMo | |
834 ########## | |
835 - regex: 'DoCoMo/2\.0 ([A-Za-z0-9]+)' | |
836 device_replacement: 'DoCoMo $1' | |
837 - regex: '([A-Za-z0-9]+)_W\;FOMA' | |
838 device_replacement: 'DoCoMo $1' | |
839 - regex: '([A-Za-z0-9]+)\;FOMA' | |
840 device_replacement: 'DoCoMo $1' | |
841 | |
842 ########## | |
843 # Huawei | |
844 ########## | |
845 - regex: 'Huawei([A-Za-z0-9]+)' | |
846 device_replacement: 'Huawei $1' | |
847 - regex: 'HUAWEI-([A-Za-z0-9]+)' | |
848 device_replacement: 'Huawei $1' | |
849 - regex: 'vodafone([A-Za-z0-9]+)' | |
850 device_replacement: 'Huawei Vodafone $1' | |
851 | |
852 ########## | |
853 # i-mate | |
854 ########## | |
855 - regex: 'i\-mate ([A-Za-z0-9]+)' | |
856 device_replacement: 'i-mate $1' | |
857 | |
858 ########## | |
859 # kyocera | |
860 ########## | |
861 - regex: 'Kyocera\-([A-Za-z0-9]+)' | |
862 device_replacement: 'Kyocera $1' | |
863 - regex: 'KWC\-([A-Za-z0-9]+)' | |
864 device_replacement: 'Kyocera $1' | |
865 | |
866 ########## | |
867 # lenovo | |
868 ########## | |
869 - regex: 'Lenovo\-([A-Za-z0-9]+)' | |
870 device_replacement: 'Lenovo $1' | |
871 - regex: 'Lenovo_([A-Za-z0-9]+)' | |
872 device_replacement: 'Lenovo $1' | |
873 | |
874 ########## | |
875 # lg | |
876 ########## | |
877 - regex: 'LG/([A-Za-z0-9]+)' | |
878 device_replacement: 'LG $1' | |
879 - regex: 'LG-LG([A-Za-z0-9]+)' | |
880 device_replacement: 'LG $1' | |
881 - regex: 'LGE-LG([A-Za-z0-9]+)' | |
882 device_replacement: 'LG $1' | |
883 - regex: 'LGE VX([A-Za-z0-9]+)' | |
884 device_replacement: 'LG $1' | |
885 - regex: 'LG ([A-Za-z0-9]+)' | |
886 device_replacement: 'LG $1' | |
887 - regex: 'LGE LG\-AX([A-Za-z0-9]+)' | |
888 device_replacement: 'LG $1' | |
889 - regex: 'LG\-([A-Za-z0-9]+)' | |
890 device_replacement: 'LG $1' | |
891 - regex: 'LGE\-([A-Za-z0-9]+)' | |
892 device_replacement: 'LG $1' | |
893 - regex: 'LG([A-Za-z0-9]+)' | |
894 device_replacement: 'LG $1' | |
895 | |
896 ########## | |
897 # kin | |
898 ########## | |
899 - regex: '(KIN)\.One (\d+)\.(\d+)' | |
900 device_replacement: 'Microsoft $1' | |
901 - regex: '(KIN)\.Two (\d+)\.(\d+)' | |
902 device_replacement: 'Microsoft $1' | |
903 | |
904 ########## | |
905 # motorola | |
906 ########## | |
907 - regex: '(Motorola)\-([A-Za-z0-9]+)' | |
908 - regex: 'MOTO\-([A-Za-z0-9]+)' | |
909 device_replacement: 'Motorola $1' | |
910 - regex: 'MOT\-([A-Za-z0-9]+)' | |
911 device_replacement: 'Motorola $1' | |
912 | |
913 ########## | |
914 # nintendo | |
915 ########## | |
916 - regex: '(Nintendo WiiU)' | |
917 device_replacement: 'Nintendo Wii U' | |
918 - regex: 'Nintendo (DS|3DS|DSi|Wii);' | |
919 device_replacement: 'Nintendo $1' | |
920 | |
921 ########## | |
922 # pantech | |
923 ########## | |
924 - regex: 'Pantech([A-Za-z0-9]+)' | |
925 device_replacement: 'Pantech $1' | |
926 | |
927 ########## | |
928 # philips | |
929 ########## | |
930 - regex: 'Philips([A-Za-z0-9]+)' | |
931 device_replacement: 'Philips $1' | |
932 - regex: 'Philips ([A-Za-z0-9]+)' | |
933 device_replacement: 'Philips $1' | |
934 | |
935 ########## | |
936 # Samsung | |
937 ########## | |
938 - regex: 'SAMSUNG-([A-Za-z0-9\-]+)' | |
939 device_replacement: 'Samsung $1' | |
940 - regex: 'SAMSUNG\; ([A-Za-z0-9\-]+)' | |
941 device_replacement: 'Samsung $1' | |
942 | |
943 ########## | |
944 # Sega | |
945 ########## | |
946 - regex: 'Dreamcast' | |
947 device_replacement: 'Sega Dreamcast' | |
948 | |
949 ########## | |
950 # Softbank | |
951 ########## | |
952 - regex: 'Softbank/1\.0/([A-Za-z0-9]+)' | |
953 device_replacement: 'Softbank $1' | |
954 - regex: 'Softbank/2\.0/([A-Za-z0-9]+)' | |
955 device_replacement: 'Softbank $1' | |
956 | |
957 ########## | |
958 # WebTV | |
959 ########## | |
960 - regex: '(WebTV)/(\d+).(\d+)' | |
961 | |
962 ########## | |
963 # Generic Smart Phone | |
964 ########## | |
965 - regex: '(hiptop|avantgo|plucker|xiino|blazer|elaine|up.browser|up.link|mmp|smartphone|midp|wap|vodafone|o2|pocket|mobile|pda)' | |
966 device_replacement: "Generic Smartphone" | |
967 | |
968 ########## | |
969 # Generic Feature Phone | |
970 ########## | |
971 - regex: '^(1207|3gso|4thp|501i|502i|503i|504i|505i|506i|6310|6590|770s|802s|a wa|acer|acs\-|airn|alav|asus|attw|au\-m|aur |aus |abac|acoo|aiko|alco|alca|amoi|anex|anny|anyw|aptu|arch|argo|bell|bird|bw\-n|bw\-u|beck|benq|bilb|blac|c55/|cdm\-|chtm|capi|comp|cond|craw|dall|dbte|dc\-s|dica|ds\-d|ds12|dait|devi|dmob|doco|dopo|el49|erk0|esl8|ez40|ez60|ez70|ezos|ezze|elai|emul|eric|ezwa|fake|fly\-|fly_|g\-mo|g1 u|g560|gf\-5|grun|gene|go.w|good|grad|hcit|hd\-m|hd\-p|hd\-t|hei\-|hp i|hpip|hs\-c|htc |htc\-|htca|htcg)' | |
972 device_replacement: 'Generic Feature Phone' | |
973 - regex: '^(htcp|htcs|htct|htc_|haie|hita|huaw|hutc|i\-20|i\-go|i\-ma|i230|iac|iac\-|iac/|ig01|im1k|inno|iris|jata|java|kddi|kgt|kgt/|kpt |kwc\-|klon|lexi|lg g|lg\-a|lg\-b|lg\-c|lg\-d|lg\-f|lg\-g|lg\-k|lg\-l|lg\-m|lg\-o|lg\-p|lg\-s|lg\-t|lg\-u|lg\-w|lg/k|lg/l|lg/u|lg50|lg54|lge\-|lge/|lynx|leno|m1\-w|m3ga|m50/|maui|mc01|mc21|mcca|medi|meri|mio8|mioa|mo01|mo02|mode|modo|mot |mot\-|mt50|mtp1|mtv |mate|maxo|merc|mits|mobi|motv|mozz|n100|n101|n102|n202|n203|n300|n302|n500|n502|n505|n700|n701|n710|nec\-|nem\-|newg|neon)' | |
974 device_replacement: 'Generic Feature Phone' | |
975 - regex: '^(netf|noki|nzph|o2 x|o2\-x|opwv|owg1|opti|oran|ot\-s|p800|pand|pg\-1|pg\-2|pg\-3|pg\-6|pg\-8|pg\-c|pg13|phil|pn\-2|pt\-g|palm|pana|pire|pock|pose|psio|qa\-a|qc\-2|qc\-3|qc\-5|qc\-7|qc07|qc12|qc21|qc32|qc60|qci\-|qwap|qtek|r380|r600|raks|rim9|rove|s55/|sage|sams|sc01|sch\-|scp\-|sdk/|se47|sec\-|sec0|sec1|semc|sgh\-|shar|sie\-|sk\-0|sl45|slid|smb3|smt5|sp01|sph\-|spv |spv\-|sy01|samm|sany|sava|scoo|send|siem|smar|smit|soft|sony|t\-mo|t218|t250|t600|t610|t618|tcl\-|tdg\-|telm|tim\-|ts70|tsm\-|tsm3|tsm5|tx\-9|tagt)' | |
976 device_replacement: 'Generic Feature Phone' | |
977 - regex: '^(talk|teli|topl|tosh|up.b|upg1|utst|v400|v750|veri|vk\-v|vk40|vk50|vk52|vk53|vm40|vx98|virg|vite|voda|vulc|w3c |w3c\-|wapj|wapp|wapu|wapm|wig |wapi|wapr|wapv|wapy|wapa|waps|wapt|winc|winw|wonu|x700|xda2|xdag|yas\-|your|zte\-|zeto|aste|audi|avan|blaz|brew|brvw|bumb|ccwa|cell|cldc|cmd\-|dang|eml2|fetc|hipt|http|ibro|idea|ikom|ipaq|jbro|jemu|jigs|keji|kyoc|kyok|libw|m\-cr|midp|mmef|moto|mwbp|mywa|newt|nok6|o2im|pant|pdxg|play|pluc|port|prox|rozo|sama|seri|smal|symb|treo|upsi|vx52|vx53|vx60|vx61|vx70|vx80|vx81|vx83|vx85|wap\-|webc|whit|wmlb|xda\-|xda_)' | |
978 device_replacement: 'Generic Feature Phone' | |
979 | |
980 ########## | |
981 # Spiders (this is hack...) | |
982 ########## | |
983 - regex: '(bot|borg|google(^tv)|yahoo|slurp|msnbot|msrbot|openbot|archiver|netresearch|lycos|scooter|altavista|teoma|gigabot|baiduspider|blitzbot|oegp|charlotte|furlbot|http%20client|polybot|htdig|ichiro|mogimogi|larbin|pompos|scrubby|searchsight|seekbot|semanticdiscovery|silk|snappy|speedy|spider|voila|vortex|voyager|zao|zeal|fast\-webcrawler|converacrawler|dataparksearch|findlinks|crawler)' | |
984 device_replacement: 'Spider' | |
985 |