user_agent_parser 2.18.0 → 2.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/vendor/uap-core/regexes.yaml +208 -33
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 11089a41cd3757e84648183751f32fdac6b21ec35f816107dd0618a8d22c0513
|
|
4
|
+
data.tar.gz: 8e87644b16b999b1846ccc28412ebb52c22dde87ff601f330c1cd899b952bb84
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 78eb06db8aed97c4e8e787f445a246224475ddccff22797ce36c474ca0e80d1ebf1e8a02e65da078bfe97971ebb37c694e8db4862bc5edca940d96c960238497
|
|
7
|
+
data.tar.gz: c9b7dfce4c1dcb81e71d5a878c660a3104307cd2b1f7a5d1860975c1acd9dee83bc3a3818bdc1e574883c98e0b2cf75c4880fb164dedea0d5270e6977e43e29b
|
|
@@ -148,11 +148,11 @@ user_agent_parsers:
|
|
|
148
148
|
family_replacement: 'Pinterestbot'
|
|
149
149
|
|
|
150
150
|
# Bots
|
|
151
|
-
- regex: '(CSimpleSpider|Cityreview Robot|CrawlDaddy|CrawlFire|Finderbots|Index crawler|Job Roboter|KiwiStatus Spider|Lijit Crawler|QuerySeekerSpider|ScollSpider|Trends Crawler|USyd-NLP-Spider|SiteCat Webbot|BotName\/\$BotVersion|123metaspider-Bot|1470\.net crawler|50\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]{1,30}-Agent|AdsBot-Google(?:-[a-z]{1,30}|)|altavista|AppEngine-Google|archive.{0,30}\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]{1,30})(?:-[A-Za-z]{1,30}|)|bingbot|BingPreview|blitzbot|BlogBridge|Bloglovin|BoardReader Blog Indexer|BoardReader Favicon Fetcher|boitho.com-dc|BotSeer|BUbiNG|\b\w{0,30}favicon\w{0,30}\b|\bYeti(?:-[a-z]{1,30}|)|Catchpoint(?: bot|)|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\(S\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher|)|Feed Seeker Bot|Feedbin|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]{1,30}-|)Googlebot(?:-[a-zA-Z]{1,30}|)|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile|)|IconSurf|IlTrovatore(?:-Setaccio|)|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]{1,30}Bot|jbot\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\.RU_Bot|masscan|masidani_bot|Mediapartners-Google|Microsoft .{0,30} Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media {0,2}|)|msrbot|Mtps Feed Aggregation System|netresearch|Netvibes|NewsGator[^/]{0,30}|^NING|Nutch[^/]{0,30}|Nymesis|ObjectsSearch|OgScrper|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PHPCrawl|PlantyNet_WebRobot|Pompos|Qwantify|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|SemrushBot|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slackbot-LinkExpanding|Slack-ImgProxy|Slurp|snappy|Speedy Spider|Squrl Java|Stringer|TheUsefulbot|ThumbShotsBot|Thumbshots\.ru|Tiny Tiny RSS|Twitterbot|WhatsApp|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]{1,30}|WhatWeb|WIRE|WordPress|Wotbox|www\.almaden\.ibm\.com|Xenu(?:.s|) Link Sleuth|Xerka [A-z]{1,30}Bot|yacy(?:bot|)|YahooSeeker|Yahoo! Slurp|Yandex\w{1,30}|YodaoBot(?:-[A-z]{1,30}|)|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\.ze\.bz|ZooShot|ZyBorg|ArcGIS Hub Indexer)(?:[ /]v?(\d+)(?:\.(\d+)(?:\.(\d+)|)|)|)'
|
|
151
|
+
- regex: '(CSimpleSpider|Cityreview Robot|CrawlDaddy|CrawlFire|Finderbots|Index crawler|Job Roboter|KiwiStatus Spider|Lijit Crawler|QuerySeekerSpider|ScollSpider|Trends Crawler|USyd-NLP-Spider|SiteCat Webbot|BotName\/\$BotVersion|123metaspider-Bot|1470\.net crawler|50\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]{1,30}-Agent|AdsBot-Google(?:-[a-z]{1,30}|)|altavista|AppEngine-Google|archive.{0,30}\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]{1,30})(?:-[A-Za-z]{1,30}|)|bingbot|BingPreview|blitzbot|BlogBridge|Bloglovin|BoardReader Blog Indexer|BoardReader Favicon Fetcher|boitho.com-dc|BotSeer|BUbiNG|\b\w{0,30}favicon\w{0,30}\b|\bYeti(?:-[a-z]{1,30}|)|Catchpoint(?: bot|)|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\(S\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher|)|Feed Seeker Bot|Feedbin|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]{1,30}-|)Googlebot(?:-[a-zA-Z]{1,30}|)|GoogleOther|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile|)|IconSurf|IlTrovatore(?:-Setaccio|)|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]{1,30}Bot|jbot\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\.RU_Bot|masscan|masidani_bot|Mediapartners-Google|Microsoft .{0,30} Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media {0,2}|)|msrbot|Mtps Feed Aggregation System|netresearch|Netvibes|NewsGator[^/]{0,30}|^NING|Nutch[^/]{0,30}|Nymesis|ObjectsSearch|OgScrper|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PHPCrawl|PlantyNet_WebRobot|Pompos|Qwantify|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|SemrushBot|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slackbot-LinkExpanding|Slack-ImgProxy|Slurp|snappy|Speedy Spider|Squrl Java|Stringer|TheUsefulbot|ThumbShotsBot|Thumbshots\.ru|Tiny Tiny RSS|Twitterbot|WhatsApp|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]{1,30}|WhatWeb|WIRE|WordPress|Wotbox|www\.almaden\.ibm\.com|Xenu(?:.s|) Link Sleuth|Xerka [A-z]{1,30}Bot|yacy(?:bot|)|YahooSeeker|Yahoo! Slurp|Yandex\w{1,30}|YodaoBot(?:-[A-z]{1,30}|)|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\.ze\.bz|ZooShot|ZyBorg|ArcGIS Hub Indexer|GPTBot|Google-InspectionTool)(?:[ /]v?(\d+)(?:\.(\d+)(?:\.(\d+)|)|)|)'
|
|
152
152
|
|
|
153
153
|
# AWS S3 Clients
|
|
154
154
|
# must come before "Bots General matcher" to catch "boto"/"boto3" before "bot"
|
|
155
|
-
- regex: '\b(Boto3?|JetS3t|aws-(?:cli|sdk-(?:cpp|go|java|nodejs|ruby2?|dotnet-(?:\d{1,2}|core)))|s3fs)/(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
155
|
+
- regex: '\b(Boto3?|JetS3t|aws-(?:cli|sdk-(?:cpp|go|go-v\d|java|nodejs|ruby2?|dotnet-(?:\d{1,2}|core)))|s3fs)/(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
156
156
|
|
|
157
157
|
# SAFE FME
|
|
158
158
|
- regex: '(FME)\/(\d+\.\d+)\.(\d+)\.(\d+)'
|
|
@@ -179,6 +179,9 @@ user_agent_parsers:
|
|
|
179
179
|
- regex: '\[FB.{0,300};'
|
|
180
180
|
family_replacement: 'Facebook'
|
|
181
181
|
|
|
182
|
+
# RecipeRadar crawler
|
|
183
|
+
- regex: '(RecipeRadar)/(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
184
|
+
|
|
182
185
|
# Bots General matcher 'name/0.0'
|
|
183
186
|
- regex: '^.{0,200}?(?:\/[A-Za-z0-9\.]{0,50}|) {0,2}([A-Za-z0-9 \-_\!\[\]:]{0,50}(?:[Aa]rchiver|[Ii]ndexer|[Ss]craper|[Bb]ot|[Ss]pider|[Cc]rawl[a-z]{0,50}))[/ ](\d+)(?:\.(\d+)(?:\.(\d+)|)|)'
|
|
184
187
|
# Bots containing bot(but not CUBOT)
|
|
@@ -215,6 +218,16 @@ user_agent_parsers:
|
|
|
215
218
|
# Twitter
|
|
216
219
|
- regex: '(Twitter for (?:iPhone|iPad)|TwitterAndroid)(?:\/(\d+)\.(\d+)|)'
|
|
217
220
|
family_replacement: 'Twitter'
|
|
221
|
+
# TikTok
|
|
222
|
+
- regex: '(musical_ly) app_version\/(\d+)\.(\d+)\.(\d+)'
|
|
223
|
+
family_replacement: 'TikTok'
|
|
224
|
+
- regex: '(musical_ly_)(\d+)\.(\d+)\.(\d+)'
|
|
225
|
+
family_replacement: 'TikTok'
|
|
226
|
+
- regex: '(BytedanceWebview)\/[a-z0-9]+'
|
|
227
|
+
family_replacement: 'TikTok'
|
|
228
|
+
# KakaoTalk
|
|
229
|
+
- regex: 'Mozilla.{1,200}Mobile.{1,100}(KAKAOTALK)/(\d+)\.(\d+)\.(\d+)'
|
|
230
|
+
family_replacement: 'KakaoTalk'
|
|
218
231
|
|
|
219
232
|
# Phantom app
|
|
220
233
|
- regex: 'Mozilla.{1,200}Mobile.{1,100}(Phantom\/ios|Phantom\/android).(\d+)\.(\d+)\.(\d+)'
|
|
@@ -394,13 +407,17 @@ user_agent_parsers:
|
|
|
394
407
|
- regex: '(Instabridge)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
395
408
|
|
|
396
409
|
# Aloha Browser
|
|
397
|
-
- regex: '(AlohaBrowser)/(\d+)\.(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
410
|
+
- regex: '(AlohaBrowser|ABB)/(\d+)\.(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
398
411
|
family_replacement: 'Aloha Browser'
|
|
399
412
|
|
|
400
|
-
# Brave Browser
|
|
413
|
+
# Brave Browser, should go before Safari and Chrome Mobile
|
|
401
414
|
- regex: '((?:B|b)rave(?:\sChrome)?)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
402
415
|
family_replacement: 'Brave'
|
|
403
416
|
|
|
417
|
+
# Brave iOS Browser, checks for (Brave) or Brave at end
|
|
418
|
+
- regex: '(?:\()?Brave(?:\))?\s*$'
|
|
419
|
+
family_replacement: 'Brave'
|
|
420
|
+
|
|
404
421
|
# Amazon Silk, should go before Safari and Chrome Mobile
|
|
405
422
|
- regex: '(Silk)/(\d+)\.(\d+)(?:\.([0-9\-]+)|)'
|
|
406
423
|
family_replacement: 'Amazon Silk'
|
|
@@ -415,7 +432,7 @@ user_agent_parsers:
|
|
|
415
432
|
family_replacement: 'Edge Mobile'
|
|
416
433
|
|
|
417
434
|
# Oculus Browser, should go before Samsung Internet
|
|
418
|
-
- regex: '(OculusBrowser)/(\d+)\.(\d+)
|
|
435
|
+
- regex: '(OculusBrowser)/(\d+)\.(\d+)(?:\.([0-9\-]+)|)'
|
|
419
436
|
family_replacement: 'Oculus Browser'
|
|
420
437
|
|
|
421
438
|
# Samsung Internet (based on Chrome, but lacking some features)
|
|
@@ -430,12 +447,6 @@ user_agent_parsers:
|
|
|
430
447
|
- regex: '(coc_coc_browser)/(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
431
448
|
family_replacement: 'Coc Coc'
|
|
432
449
|
|
|
433
|
-
# Baidu Browsers (desktop spoofs chrome & IE, explorer is mobile)
|
|
434
|
-
- regex: '(baidubrowser)[/\s](\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
435
|
-
family_replacement: 'Baidu Browser'
|
|
436
|
-
- regex: '(FlyFlow)/(\d+)\.(\d+)'
|
|
437
|
-
family_replacement: 'Baidu Explorer'
|
|
438
|
-
|
|
439
450
|
# MxBrowser is Maxthon. Must go before Mobile Chrome for Android
|
|
440
451
|
- regex: '(MxBrowser)/(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
441
452
|
family_replacement: 'Maxthon'
|
|
@@ -464,6 +475,12 @@ user_agent_parsers:
|
|
|
464
475
|
- regex: 'Mozilla.{1,200}Android.{1,200}(GSA)/(\d+)\.(\d+)\.(\d+)'
|
|
465
476
|
family_replacement: 'Google'
|
|
466
477
|
|
|
478
|
+
# Baidu Browsers (desktop spoofs chrome & IE, explorer is mobile)
|
|
479
|
+
- regex: '(baidubrowser)[/\s](\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
480
|
+
family_replacement: 'Baidu Browser'
|
|
481
|
+
- regex: '(FlyFlow|flyflow|baiduboxapp)/(\d+)\.(\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
482
|
+
family_replacement: 'Baidu Explorer'
|
|
483
|
+
|
|
467
484
|
# QQ Browsers
|
|
468
485
|
- regex: '(MQQBrowser/Mini)(?:(\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)'
|
|
469
486
|
family_replacement: 'QQ Browser Mini'
|
|
@@ -487,11 +504,41 @@ user_agent_parsers:
|
|
|
487
504
|
family_replacement: 'Tenta Browser'
|
|
488
505
|
|
|
489
506
|
# Ecosia on iOS / Android
|
|
490
|
-
- regex: '(Ecosia) ios@(\d+)
|
|
507
|
+
- regex: '(Ecosia) ios@(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
491
508
|
family_replacement: 'Ecosia iOS'
|
|
492
|
-
- regex: '(Ecosia) android@(\d+)
|
|
509
|
+
- regex: '(Ecosia) android@(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
493
510
|
family_replacement: 'Ecosia Android'
|
|
494
511
|
|
|
512
|
+
# VivoBrowser
|
|
513
|
+
- regex: '(VivoBrowser)\/(\d+)\.(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
514
|
+
|
|
515
|
+
# HiBrowser
|
|
516
|
+
- regex: '(H[Ii]Browser)\/v(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
517
|
+
family_replacement: 'HiBrowser'
|
|
518
|
+
|
|
519
|
+
# Honor Browser
|
|
520
|
+
- regex: '(HonorBrowser)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
521
|
+
family_replacement: 'Honor Browser'
|
|
522
|
+
|
|
523
|
+
# Honor Browser
|
|
524
|
+
- regex: '(bdhonorbrowser)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
525
|
+
family_replacement: 'Honor Browser'
|
|
526
|
+
|
|
527
|
+
# HeyTap Browser
|
|
528
|
+
- regex: '(HeyTapBrowser)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
529
|
+
family_replacement: 'HeyTap Browser'
|
|
530
|
+
|
|
531
|
+
# Weibo
|
|
532
|
+
# Must before Chrome Mobile WebView
|
|
533
|
+
- regex: '(weibo)__(\d+)\.(\d+)\.(\d+)'
|
|
534
|
+
family_replacement: 'Weibo'
|
|
535
|
+
- regex: '(WeiboliteiOS|WeiboIntliOS)'
|
|
536
|
+
family_replacement: 'Weibo'
|
|
537
|
+
|
|
538
|
+
# Phoenix Browser
|
|
539
|
+
- regex: '(PHX)/(\d+)\.(\d+)'
|
|
540
|
+
family_replacement: 'Phoenix Browser'
|
|
541
|
+
|
|
495
542
|
# Chrome Mobile
|
|
496
543
|
- regex: 'Version/.{1,300}(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
497
544
|
family_replacement: 'Chrome Mobile WebView'
|
|
@@ -569,6 +616,116 @@ user_agent_parsers:
|
|
|
569
616
|
- regex: '^(surveyon)/(\d+)\.(\d+)\.(\d+)'
|
|
570
617
|
family_replacement: 'Surveyon'
|
|
571
618
|
|
|
619
|
+
# 115 Browser
|
|
620
|
+
- regex: '(115Browser)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
621
|
+
family_replacement: '115 Browser'
|
|
622
|
+
|
|
623
|
+
# Avira
|
|
624
|
+
- regex: '(Avira)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
625
|
+
family_replacement: 'Avira'
|
|
626
|
+
|
|
627
|
+
# CCleaner Browser
|
|
628
|
+
- regex: '(CCleaner)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
629
|
+
family_replacement: 'CCleaner'
|
|
630
|
+
|
|
631
|
+
# Norton
|
|
632
|
+
- regex: '(Norton)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
633
|
+
family_replacement: 'Norton'
|
|
634
|
+
|
|
635
|
+
# Quark
|
|
636
|
+
- regex: '(Quark)/(\d+)\.(\d+)\.(\d+)'
|
|
637
|
+
family_replacement: 'Quark'
|
|
638
|
+
# Quark PC
|
|
639
|
+
- regex: '(QuarkPC)/(\d+)\.(\d+)\.(\d+)'
|
|
640
|
+
family_replacement: 'Quark PC'
|
|
641
|
+
|
|
642
|
+
# Smart Lenovo Browser
|
|
643
|
+
- regex: '(SLBrowser)/(\d+)\.(\d+)\.(\d+)\.(\d+) SLBChan/(\d+)'
|
|
644
|
+
family_replacement: 'Smart Lenovo Browser'
|
|
645
|
+
|
|
646
|
+
# Atom Browser
|
|
647
|
+
- regex: '(Atom)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
648
|
+
family_replacement: 'Atom Browser'
|
|
649
|
+
|
|
650
|
+
# 360 Secure Browser
|
|
651
|
+
- regex: '(Chrome)/\d+\.\d+\.\d+\.\d+ .* QIHU 360(?:SEi18n|ENT)'
|
|
652
|
+
family_replacement: '360 Secure Browser'
|
|
653
|
+
|
|
654
|
+
# Decentr Web3 Browser
|
|
655
|
+
- regex: '(Decentr)'
|
|
656
|
+
family_replacement: 'Decentr Web3 Browser'
|
|
657
|
+
|
|
658
|
+
# Sparrow Browser
|
|
659
|
+
- regex: '(Sparrow)'
|
|
660
|
+
family_replacement: 'Sparrow Browser'
|
|
661
|
+
|
|
662
|
+
# Chromium GOST Browser
|
|
663
|
+
- regex: '(Chromium GOST)'
|
|
664
|
+
family_replacement: 'Chromium GOST Browser'
|
|
665
|
+
|
|
666
|
+
# AOL Shield Browser
|
|
667
|
+
- regex: '(AOLShield)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
668
|
+
family_replacement: 'AOL Shield Browser'
|
|
669
|
+
|
|
670
|
+
# Hola Browser
|
|
671
|
+
- regex: '(Hola)/(\d+)\.(\d+)\.(\d+)'
|
|
672
|
+
family_replacement: 'Hola Browser'
|
|
673
|
+
|
|
674
|
+
# Craving Explorer Browser
|
|
675
|
+
- regex: '(CravingExplorer)/(\d+)\.(\d+)\.(\d+)'
|
|
676
|
+
family_replacement: 'Craving Explorer Browser'
|
|
677
|
+
|
|
678
|
+
# Talon Cyber Security Browser
|
|
679
|
+
- regex: '(Talon)'
|
|
680
|
+
family_replacement: 'Talon Cyber Security Browser'
|
|
681
|
+
|
|
682
|
+
# QAX Browser
|
|
683
|
+
- regex: '(Qaxbrowser)'
|
|
684
|
+
family_replacement: 'QAX Browser'
|
|
685
|
+
|
|
686
|
+
# AOL Desktop Gold Browser
|
|
687
|
+
- regex: '(ADG)/(\d+)\.(\d+)\.(\d+)'
|
|
688
|
+
family_replacement: 'AOL Desktop Gold Browser'
|
|
689
|
+
|
|
690
|
+
# Sber Browser
|
|
691
|
+
- regex: '(SberBrowser)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
692
|
+
family_replacement: 'Sber Browser'
|
|
693
|
+
|
|
694
|
+
# JiSu Browser
|
|
695
|
+
- regex: '(JiSu)/(\d+)\.(\d+)\.(\d+)'
|
|
696
|
+
family_replacement: 'JiSu Browser'
|
|
697
|
+
|
|
698
|
+
# Wolvic Browser
|
|
699
|
+
- regex: '(Wolvic)/(\d+)\.(\d+)\.(\d+)'
|
|
700
|
+
family_replacement: 'Wolvic Browser'
|
|
701
|
+
|
|
702
|
+
# SmartTV WebBrowser
|
|
703
|
+
- regex: '(Thano)/(\d+)\.(\d+)'
|
|
704
|
+
family_replacement: 'SmartTV WebBrowser'
|
|
705
|
+
|
|
706
|
+
# WeChat Browser
|
|
707
|
+
- regex: '(MicroMessenger)/(\d+)\.(\d+)\.(\d+)'
|
|
708
|
+
family_replacement: 'WeChat Browser'
|
|
709
|
+
|
|
710
|
+
# Odin Browser
|
|
711
|
+
- regex: '(Odin)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
712
|
+
family_replacement: 'Odin'
|
|
713
|
+
|
|
714
|
+
# NetCast Smart TV
|
|
715
|
+
- regex: '(Colt)/(\d+)\.(\d+)'
|
|
716
|
+
family_replacement: 'NetCast Smart TV'
|
|
717
|
+
# Lite Browser
|
|
718
|
+
- regex: '(Lite Browser)/(\d+)\.(\d+)'
|
|
719
|
+
family_replacement: 'Lite Browser'
|
|
720
|
+
|
|
721
|
+
# Vewd Browser
|
|
722
|
+
- regex: '(OMI)/(\d+)\.(\d+)\.(\d+)'
|
|
723
|
+
family_replacement: 'Vewd Browser'
|
|
724
|
+
|
|
725
|
+
# Mypal
|
|
726
|
+
- regex: '(Mypal)/(\d+)\.(\d+)\.(\d+)'
|
|
727
|
+
family_replacement: 'Mypal Browser'
|
|
728
|
+
|
|
572
729
|
#### END SPECIAL CASES TOP ####
|
|
573
730
|
|
|
574
731
|
#### MAIN CASES - this catches > 50% of all browsers ####
|
|
@@ -1388,6 +1545,13 @@ os_parsers:
|
|
|
1388
1545
|
- regex: '^Box.{0,200};(Darwin)/(10)\.(1\d)(?:\.(\d+)|)'
|
|
1389
1546
|
os_replacement: 'Mac OS X'
|
|
1390
1547
|
|
|
1548
|
+
##########
|
|
1549
|
+
# Hashicorp API
|
|
1550
|
+
# APN/1.0 HashiCorp/1.0 Terraform/1.8.0 (+https://www.terraform.io) terraform-provider-aws/4.67.0 (+https://registry.terraform.io/providers/hashicorp/aws) aws-sdk-go/1.44.261 (go1.19.8; darwin; arm64)
|
|
1551
|
+
##########
|
|
1552
|
+
- regex: 'darwin; arm64'
|
|
1553
|
+
os_replacement: 'Mac OS X'
|
|
1554
|
+
|
|
1391
1555
|
##########
|
|
1392
1556
|
# iOS
|
|
1393
1557
|
# http://en.wikipedia.org/wiki/IOS_version_history
|
|
@@ -1672,29 +1836,27 @@ os_parsers:
|
|
|
1672
1836
|
- regex: 'CFNetwork/.{0,100} Darwin/(21)\.\d+'
|
|
1673
1837
|
os_replacement: 'iOS'
|
|
1674
1838
|
os_v1_replacement: '15'
|
|
1675
|
-
- regex: 'CFNetwork/.{0,100} Darwin/22\.0\.\d+'
|
|
1839
|
+
- regex: 'CFNetwork/.{0,100} Darwin/22\.([0-5])\.\d+'
|
|
1676
1840
|
os_replacement: 'iOS'
|
|
1677
1841
|
os_v1_replacement: '16'
|
|
1678
|
-
os_v2_replacement: '
|
|
1679
|
-
- regex: 'CFNetwork/.{0,100} Darwin/22
|
|
1842
|
+
os_v2_replacement: '$1'
|
|
1843
|
+
- regex: 'CFNetwork/.{0,100} Darwin/(22)\.\d+'
|
|
1680
1844
|
os_replacement: 'iOS'
|
|
1681
1845
|
os_v1_replacement: '16'
|
|
1682
|
-
|
|
1683
|
-
- regex: 'CFNetwork/.{0,100} Darwin/22\.2\.\d+'
|
|
1846
|
+
- regex: 'CFNetwork/.{0,100} Darwin/23\.([0-5])\.\d+'
|
|
1684
1847
|
os_replacement: 'iOS'
|
|
1685
|
-
os_v1_replacement: '
|
|
1686
|
-
os_v2_replacement: '
|
|
1687
|
-
- regex: 'CFNetwork/.{0,100} Darwin/
|
|
1848
|
+
os_v1_replacement: '17'
|
|
1849
|
+
os_v2_replacement: '$1'
|
|
1850
|
+
- regex: 'CFNetwork/.{0,100} Darwin/(23)\.\d+'
|
|
1688
1851
|
os_replacement: 'iOS'
|
|
1689
|
-
os_v1_replacement: '
|
|
1690
|
-
|
|
1691
|
-
- regex: 'CFNetwork/.{0,100} Darwin/22\.4\.\d+'
|
|
1852
|
+
os_v1_replacement: '17'
|
|
1853
|
+
- regex: 'CFNetwork/.{0,100} Darwin/24\.([0-5])\.\d+'
|
|
1692
1854
|
os_replacement: 'iOS'
|
|
1693
|
-
os_v1_replacement: '
|
|
1694
|
-
os_v2_replacement: '
|
|
1695
|
-
- regex: 'CFNetwork/.{0,100} Darwin/(
|
|
1855
|
+
os_v1_replacement: '18'
|
|
1856
|
+
os_v2_replacement: '$1'
|
|
1857
|
+
- regex: 'CFNetwork/.{0,100} Darwin/(24)\.\d+'
|
|
1696
1858
|
os_replacement: 'iOS'
|
|
1697
|
-
os_v1_replacement: '
|
|
1859
|
+
os_v1_replacement: '18'
|
|
1698
1860
|
- regex: 'CFNetwork/.{0,100} Darwin/'
|
|
1699
1861
|
os_replacement: 'iOS'
|
|
1700
1862
|
|
|
@@ -1889,13 +2051,28 @@ os_parsers:
|
|
|
1889
2051
|
# Roku Digital-Video-Players https://www.roku.com/
|
|
1890
2052
|
- regex: '^(Roku)/DVP-(\d+)\.(\d+)'
|
|
1891
2053
|
|
|
2054
|
+
##########
|
|
2055
|
+
# Amazon S3 client boto3
|
|
2056
|
+
# Hasicorp API
|
|
2057
|
+
# Boto3/1.28.62 md/Botocore#1.31.62 ua/2.0 os/macos#22.4.0 md/arch#arm64 lang/python#3.11.6 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.31.62
|
|
2058
|
+
# APN/1.0 HashiCorp/1.0 Terraform/1.8.1 (+https://www.terraform.io) terraform-provider-aws/4.67.0 (+https://registry.terraform.io/providers/hashicorp/aws) aws-sdk-go-v2/1.18.0 os/macos lang/go/1.19.8 md/GOOS/darwin md/GOARCH/arm64 api/identitystore/1.16.11
|
|
2059
|
+
##########
|
|
2060
|
+
- regex: 'os\/macos[#]?(\d*)[.]?(\d*)[.]?(\d*)'
|
|
2061
|
+
os_replacement: 'Mac OS X'
|
|
2062
|
+
os_v1_replacement: '$1'
|
|
2063
|
+
os_v2_replacement: '$2'
|
|
2064
|
+
os_v3_replacement: '$3'
|
|
2065
|
+
|
|
2066
|
+
# Huawei HarmonyOS
|
|
2067
|
+
- regex: '(HarmonyOS)[\s;]+(\d+|)\.?(\d+|)\.?(\d+|)'
|
|
2068
|
+
|
|
1892
2069
|
device_parsers:
|
|
1893
2070
|
|
|
1894
2071
|
#########
|
|
1895
2072
|
# Mobile Spiders
|
|
1896
2073
|
# Catch the mobile crawler before checking for iPhones / Androids.
|
|
1897
2074
|
#########
|
|
1898
|
-
- regex: '^.{0,100}?(?:(?:iPhone|Windows CE|Windows Phone|Android).{0,300}(?:(?:Bot|Yeti)-Mobile|YRSpider|BingPreview|bots?/\d|(?:bot|spider)\.html)|AdsBot-Google-Mobile.{0,200}iPhone)'
|
|
2075
|
+
- regex: '^.{0,100}?(?:(?:iPhone|Windows CE|Windows Phone|Android).{0,300}(?:(?:Bot|Yeti)-Mobile|YRSpider|BingPreview|bots?/\d|(?:bot|spider)\.html|Google-InspectionTool)|AdsBot-Google-Mobile.{0,200}iPhone)'
|
|
1899
2076
|
regex_flag: 'i'
|
|
1900
2077
|
device_replacement: 'Spider'
|
|
1901
2078
|
brand_replacement: 'Spider'
|
|
@@ -3097,7 +3274,7 @@ device_parsers:
|
|
|
3097
3274
|
device_replacement: 'HTC $1'
|
|
3098
3275
|
brand_replacement: 'HTC'
|
|
3099
3276
|
model_replacement: '$1'
|
|
3100
|
-
- regex: '; {0,2}(ADR6200|ADR6400L|ADR6425LVW|Amaze|DesireS?|EndeavorU|Eris|EVO|Evo\d[A-Z]+|HD2|IncredibleS?|Inspire[A-Z0-9]*|
|
|
3277
|
+
- regex: '; {0,2}(ADR6200|ADR6400L|ADR6425LVW|Amaze|DesireS?|EndeavorU|Eris|EVO|Evo\d[A-Z]+|HD2|IncredibleS?|Inspire[A-Z0-9]*|Sensation[A-Z0-9]*|Wildfire)[ _-](.{1,200}?)(?:[/;\)]|Build|MIUI|1\.0)'
|
|
3101
3278
|
regex_flag: 'i'
|
|
3102
3279
|
device_replacement: 'HTC $1 $2'
|
|
3103
3280
|
brand_replacement: 'HTC'
|
|
@@ -5501,7 +5678,6 @@ device_parsers:
|
|
|
5501
5678
|
brand_replacement: 'Asus'
|
|
5502
5679
|
model_replacement: '$1'
|
|
5503
5680
|
|
|
5504
|
-
|
|
5505
5681
|
##########
|
|
5506
5682
|
# Bird
|
|
5507
5683
|
##########
|
|
@@ -5701,7 +5877,6 @@ device_parsers:
|
|
|
5701
5877
|
brand_replacement: 'Motorola'
|
|
5702
5878
|
model_replacement: '$2'
|
|
5703
5879
|
|
|
5704
|
-
|
|
5705
5880
|
##########
|
|
5706
5881
|
# nintendo
|
|
5707
5882
|
##########
|
|
@@ -5905,7 +6080,7 @@ device_parsers:
|
|
|
5905
6080
|
##########
|
|
5906
6081
|
# Spiders (this is a hack...)
|
|
5907
6082
|
##########
|
|
5908
|
-
- regex: '^.{0,100}(bot|BUbiNG|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Daum|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|BingPreview|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.{0,200}/\+/web/snippet|Google-HTTP-Java-Client|BlogBridge|IlTrovatore-Setaccio|InternetArchive|GomezAgent|WebThumbnail|heritrix|NewsGator|PagePeeker|Reaper|ZooShot|holmes|NL-Crawler|Pingdom|StatusCake|WhatsApp|masscan|Google Web Preview|Qwantify|Yeti|OgScrper)'
|
|
6083
|
+
- regex: '^.{0,100}(bot|BUbiNG|zao|borg|DBot|oegp|silk|Xenu|zeal|^NING|CCBot|crawl|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|^Java/|^JNLP/|Daumoa|Daum|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|spider|msnbot|msrbot|vortex|^vortex|crawler|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|bingbot|BingPreview|openbot|gigabot|furlbot|polybot|seekbot|^voyager|archiver|Icarus6j|mogimogi|Netvibes|blitzbot|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|SeznamBot|ProoXiBot|wsr\-agent|Squrl Java|EtaoSpider|PaperLiBot|SputnikBot|A6\-Indexer|netresearch|searchsight|baiduspider|YisouSpider|ICC\-Crawler|http%20client|Python-urllib|dataparksearch|converacrawler|Screaming Frog|AppEngine-Google|YahooCacheSystem|fast\-webcrawler|Sogou Pic Spider|semanticdiscovery|Innovazion Crawler|facebookexternalhit|Google.{0,200}/\+/web/snippet|Google-HTTP-Java-Client|BlogBridge|IlTrovatore-Setaccio|InternetArchive|GomezAgent|WebThumbnail|heritrix|NewsGator|PagePeeker|Reaper|ZooShot|holmes|NL-Crawler|Pingdom|StatusCake|WhatsApp|masscan|Google Web Preview|Qwantify|Yeti|OgScrper|RecipeRadar|GPTBot|Google-InspectionTool)'
|
|
5909
6084
|
regex_flag: 'i'
|
|
5910
6085
|
device_replacement: 'Spider'
|
|
5911
6086
|
brand_replacement: 'Spider'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: user_agent_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.21.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tim Lucas
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-02-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: |
|
|
14
14
|
A simple, comprehensive Ruby gem for parsing user agent strings
|
|
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
48
48
|
- !ruby/object:Gem::Version
|
|
49
49
|
version: '0'
|
|
50
50
|
requirements: []
|
|
51
|
-
rubygems_version: 3.5.
|
|
51
|
+
rubygems_version: 3.5.22
|
|
52
52
|
signing_key:
|
|
53
53
|
specification_version: 4
|
|
54
54
|
summary: Parsing user agent strings with the help of BrowserScope's UA database
|