browser 3.0.1 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53decb60a500c2a7d9aa08ecb38764898be5deb813849131ef883e9944c6951e
4
- data.tar.gz: 5aad1b2edf63615f946c20b14dc292a7f172a6379baceb6eaeb83205f5bb04fc
3
+ metadata.gz: d83e06fd8c03def4d4c2af17fbbd94580594eeb689aa6f4d0fda3d7c94be4c8c
4
+ data.tar.gz: 4e8b416860701c61d4a1cf40d2a51316c28431e60d24716d8092746faff88c70
5
5
  SHA512:
6
- metadata.gz: 0fe86685cdf72e8706872ce2e64534460bd0989123b896aa6d3430cf6c3ccb9676fa782553ff3ff3aa7f5adc3d60e6b92214721551972798a4a1f761ba57a82c
7
- data.tar.gz: d5749c3672b07fa937958586deb29f6447087f7a7fdd169323e35921de42260292ae7098f765119cb2ce9fdd47c83acb54a86ea2b57f652ffea46ca6743d9bc8
6
+ metadata.gz: 86f29ee60621611d8abb82837eac44594b50739e7b39991bd8ce73c7b701f7630e314d3ac22fdf80567d3c2a44985ad4a632204d14805d7015e18b856d357dfc
7
+ data.tar.gz: 9bb2826023b3e7d6b7a7ca7c5f0d14b0871bcb39764d3c3c05ecba7784cc4458949533dfc16cc3de7b5f3844faf254d6faf127613ca27547d52ea07040e7ccfa
@@ -27,4 +27,4 @@
27
27
 
28
28
  ## Report
29
29
 
30
- [Visit <http://user-agent.herokuapp.com> and paste the URL here]
30
+ [Visit <https://user-agent.herokuapp.com> and paste the URL here]
data/.gitignore CHANGED
@@ -4,3 +4,4 @@ doc
4
4
  log
5
5
  *.lock
6
6
  bin/
7
+ .bundle
@@ -0,0 +1 @@
1
+ *.yml
@@ -27,3 +27,12 @@ Style/Alias:
27
27
 
28
28
  Lint/RedundantCopDisableDirective:
29
29
  Enabled: false
30
+
31
+ Metrics/AbcSize:
32
+ Enabled: false
33
+
34
+ Metrics/CyclomaticComplexity:
35
+ Enabled: false
36
+
37
+ Metrics/PerceivedComplexity:
38
+ Enabled: false
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  language: ruby
3
- sudo: false
4
3
  cache: bundler
5
4
  rvm:
6
- - 2.6.0
7
- - 2.5.0
5
+ - 2.7
6
+ - 2.6
7
+ - 2.5
8
8
  gemfile:
9
9
  - Gemfile
10
10
  - gemfiles/rails5.gemfile
@@ -2,7 +2,35 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
- - Nothing yet.
5
+ - Fix Chrome Lighthouse detection.
6
+ - Add Skype to bot list.
7
+
8
+ ## 4.1.0
9
+
10
+ - Add Samsung browser.
11
+ - Add Google Image Proxy to the bot list.
12
+ - Add The Knowledge AI bot to the bot list.
13
+ - Add Go HttpClient to the bot list.
14
+ - Fix Microsoft Edge detection on Android and iOS.
15
+ - Fix MicroMessenger detection on Android
16
+
17
+ ## 4.0.0
18
+
19
+ - Add Chrome Lighthouse to bot list.
20
+ - Add SeobilityBot to the bot list.
21
+ - Detect Mac-based platforms differently, depending on the version; "Mac OS X"
22
+ will be returned for versions prior to 10.12, and "macOS" for newer versions.
23
+ - Remove `Browser.modern_rules` and `Browser::Base#modern?`.
24
+ - Add DuckDuckGo browser.
25
+
26
+ # 3.0.3
27
+
28
+ - Deprecate `Browser.modern_rules` and `Browser::Base#modern?`. Theses methods
29
+ will be removed on the next major released, or by June 1st 2020.
30
+
31
+ ## 3.0.2
32
+
33
+ - Remove .bundle directory from package.
6
34
 
7
35
  ## 3.0.1
8
36
 
@@ -13,23 +41,32 @@
13
41
  - Add ArchiveTeam's ArchiveBot to the bot list.
14
42
  - Fix QQ Browser detection.
15
43
  - Update modern rules.
16
- - You can now define new bot matchers by adding a callable object to `Browser::Bot.matchers`.
44
+ - You can now define new bot matchers by adding a callable object to
45
+ `Browser::Bot.matchers`.
17
46
  - Fix `browser.yandex?` and `browser.sputnik?`.
18
- - [BREAKING CHANGE] Removed methods to enable the bot's empty user agent detection (`Browser::Bot.detect_empty_ua!` and `Browser::Bot.detect_empty_ua?`).
19
- - [BREAKING CHANGE] Bot detection is now more aggressive by default. It matches empty user agents, anything that matches `crawl|fetch|search|monitoring|spider|bot`, and anything listed under https://github.com/fnando/browser/blob/master/bots.yml.
47
+ - [BREAKING CHANGE] Removed methods to enable the bot's empty user agent
48
+ detection (`Browser::Bot.detect_empty_ua!` and
49
+ `Browser::Bot.detect_empty_ua?`).
50
+ - [BREAKING CHANGE] Bot detection is now more aggressive by default. It matches
51
+ empty user agents, anything that matches
52
+ `crawl|fetch|search|monitoring|spider|bot`, and anything listed under
53
+ https://github.com/fnando/browser/blob/master/bots.yml.
20
54
  - Add Jaunt to the bot list.
21
55
 
22
56
  ## 2.7.1
23
57
 
24
- - Handle Snapchat user agents that have a space or an empty string instead of a slash before the version.
58
+ - Handle Snapchat user agents that have a space or an empty string instead of a
59
+ slash before the version.
25
60
  - Fix iOS 10+ version detection.
26
- - Add fallback versions for instagram and snapchat to avoid NoMethodErrors on unexpected user agents.
61
+ - Add fallback versions for instagram and snapchat to avoid NoMethodErrors on
62
+ unexpected user agents.
27
63
 
28
64
  ## 2.7.0
29
65
 
30
66
  - Add more Slack bots.
31
67
  - Handle instagram user agents that have a slash instead of a space.
32
- - Add `Browser::Bot.why?(ua)` to help debugging why a user agent is considered bot.
68
+ - Add `Browser::Bot.why?(ua)` to help debugging why a user agent is considered
69
+ bot.
33
70
  - Promote Snapchat to a browser (it was detected as a bot previously).
34
71
  - Detect Edge based on Chrome correctly.
35
72
  - Improve Yandex detection.
@@ -45,7 +82,8 @@
45
82
 
46
83
  - Add GarlikCrawler, ImplisenseBot and WikiDo bots.
47
84
  - Add Mastodon URL expander bot.
48
- - Add eZ Publish Link Validator, GermCrawler, Pu_iN Crawler, ZoomBot, and ZoominfoBot bots.
85
+ - Add eZ Publish Link Validator, GermCrawler, Pu_iN Crawler, ZoomBot, and
86
+ ZoominfoBot bots.
49
87
  - Add Datanyze bot.
50
88
  - Add support for Instagram in-app browser.
51
89
  - Add Updown.io monitor bot.
@@ -67,13 +105,13 @@
67
105
  - Add Jooble bot.
68
106
  - Add Fyre bot.
69
107
  - Drop Rails 4 official support.
70
- - Fix accept-language sorting (If HTTP-header has value `en,fr`—without qualities—the first language should be `en` instead of `fr`).
108
+ - Fix accept-language sorting (If HTTP-header has value `en,fr`—without
109
+ qualities—the first language should be `en` instead of `fr`).
71
110
  - Ignore malformed strings when comparing versions.
72
111
  - Fix Facebook detection on newer apps.
73
112
  - Change precedence for bot detection when common libs are used.
74
113
  - Add Yandex's search browser to the exception list.
75
114
 
76
-
77
115
  ## v2.5.3
78
116
 
79
117
  - Add Google Site Verification to the bot list.
@@ -114,8 +152,10 @@
114
152
  - Add Google Drive API, Proximic Spider, NewRelic pinger and SocialRank bots.
115
153
  - Add Pinboard in-app browser to the bot exception list.
116
154
  - All browser detection methods can now compare versions.
117
- - All platform detection methods can now compare versions (except `#linux?` and `#firefox_os?`).
118
- - Add `browser/aliases`, so you can have methods on the base object (e.g. `browser.mobile?`). See README for instructions.
155
+ - All platform detection methods can now compare versions (except `#linux?` and
156
+ `#firefox_os?`).
157
+ - Add `browser/aliases`, so you can have methods on the base object (e.g.
158
+ `browser.mobile?`). See README for instructions.
119
159
  - Remove official support for Rails 3 and Ruby 2.1.
120
160
 
121
161
  ## v2.3.0
@@ -146,7 +186,8 @@
146
186
 
147
187
  ## v2.0.3
148
188
 
149
- - Fix issue with version detection when no actual version is provided (i.e. the user agent doesn't have any version information).
189
+ - Fix issue with version detection when no actual version is provided (i.e. the
190
+ user agent doesn't have any version information).
150
191
 
151
192
  ## v2.0.2
152
193
 
@@ -159,9 +200,12 @@
159
200
 
160
201
  ## v2.0.0
161
202
 
162
- - `Browser#platform` now returns instance of `Browser::Platform`, instead of a `String`. It contains information about the platform (software).
163
- - `Browser#device` was added. It returns information about the device (hardware).
164
- - `Browser#accept_language` now returns a list of `Browser::AcceptLanguage` objects.
203
+ - `Browser#platform` now returns instance of `Browser::Platform`, instead of a
204
+ `String`. It contains information about the platform (software).
205
+ - `Browser#device` was added. It returns information about the device
206
+ (hardware).
207
+ - `Browser#accept_language` now returns a list of `Browser::AcceptLanguage`
208
+ objects.
165
209
  - `Browser#bot` now returns a `Browser::Bot` instance.
166
210
  - Safari running as web app mode is not recognized as Safari anymore.
167
211
  - ruby-2.3+ will always activate frozen strings.
data/README.md CHANGED
@@ -25,6 +25,7 @@ browser = Browser.new("Some User Agent", accept_language: "en-us")
25
25
  browser.bot?
26
26
  browser.chrome?
27
27
  browser.core_media?
28
+ browser.duck_duck_go?
28
29
  browser.edge? # Newest MS browser
29
30
  browser.electron? # Electron Framework
30
31
  browser.firefox?
@@ -34,7 +35,6 @@ browser.ie?(6) # detect specific IE version
34
35
  browser.ie?([">8", "<10"]) # detect specific IE (IE9).
35
36
  browser.known? # has the browser been successfully detected?
36
37
  browser.meta # an array with several attributes
37
- browser.modern? # Webkit, Firefox 17+, IE 9+ and Opera 12+
38
38
  browser.name # readable browser name
39
39
  browser.nokia?
40
40
  browser.opera?
@@ -43,6 +43,7 @@ browser.phantom_js?
43
43
  browser.quicktime?
44
44
  browser.safari?
45
45
  browser.safari_webapp_mode?
46
+ browser.samsung_browser?
46
47
  browser.to_s # the meta info joined by space
47
48
  browser.uc_browser?
48
49
  browser.version # major version number
@@ -145,23 +146,26 @@ browser.mobile? #=> false
145
146
  - For a list of device detections, check [lib/browser/device.rb](https://github.com/fnando/browser/blob/master/lib/browser/device.rb)
146
147
  - For a list of bot detections, check [bots.yml](https://github.com/fnando/browser/blob/master/bots.yml)
147
148
 
148
- ### What defines a modern browser?
149
+ ### Detecting modern browsers
149
150
 
150
- The current rules that define a modern browser are pretty loose.
151
-
152
- * Chrome 65+
153
- * Safari 10+
154
- * Firefox 52+
155
- * IE11+
156
- * Microsoft Edge 39+
157
- * Opera 50+
158
-
159
- You can define your own rules. A rule must be a proc/lambda or any object that implements the method === and accepts the browser object. To redefine all rules, clear the existing rules before adding your own.
151
+ To detect whether a browser can be considered as modern or not, create a method that abstracts your versioning constraints. The following example will consider any of the following browsers as a modern:
160
152
 
161
153
  ```ruby
162
- # Only Google Chrome 79+ is considered modern.
163
- Browser.modern_rules.clear
164
- Browser.modern_rules << -> b { b.chrome? && b.version.to_i >= 79 }
154
+ # Expects an Browser instance,
155
+ # like in `Browser.new(user_agent, accept_language: language)`.
156
+ def modern_browser?(browser)
157
+ [
158
+ browser.chrome?(">= 65"),
159
+ browser.safari?(">= 10"),
160
+ browser.firefox?(">= 52"),
161
+ browser.ie?(">= 11") && !browser.compatibility_view?,
162
+ browser.edge?(">= 15"),
163
+ browser.opera?(">= 50"),
164
+ browser.facebook?
165
+ && browser.safari_webapp_mode?
166
+ && browser.webkit_full_version.to_i >= 602
167
+ ].any?
168
+ end
165
169
  ```
166
170
 
167
171
  ### Rails integration
@@ -240,9 +244,6 @@ browser.msie_full_version
240
244
 
241
245
  browser.compatibility_view?
242
246
  #=> true
243
-
244
- browser.modern?
245
- #=> false
246
247
  ```
247
248
 
248
249
  This behavior changed in `v1.0.0`; previously there wasn't a way of getting the real browser version.
@@ -298,7 +299,7 @@ You can use the `Browser::Middleware` to redirect user agents.
298
299
 
299
300
  ```ruby
300
301
  use Browser::Middleware do
301
- redirect_to "/upgrade" unless browser.modern?
302
+ redirect_to "/upgrade" if browser.ie?
302
303
  end
303
304
  ```
304
305
 
@@ -306,17 +307,7 @@ If you're using Rails, you can use the route helper methods. Just add something
306
307
 
307
308
  ```ruby
308
309
  Rails.configuration.middleware.use Browser::Middleware do
309
- redirect_to upgrade_path unless browser.modern?
310
- end
311
- ```
312
-
313
- Notice that you can have multiple conditionals.
314
-
315
- ```ruby
316
- Rails.configuration.middleware.use Browser::Middleware do
317
- next if browser.bot.search_engine?
318
- redirect_to upgrade_path(browser: "oldie") if browser.ie? && !browser.modern?
319
- redirect_to upgrade_path(browser: "oldfx") if browser.firefox? && !browser.modern?
310
+ redirect_to upgrade_path if browser.ie?
320
311
  end
321
312
  ```
322
313
 
@@ -324,25 +315,10 @@ If you need access to the `Rack::Request` object (e.g. to exclude a path), you c
324
315
 
325
316
  ```ruby
326
317
  Rails.configuration.middleware.use Browser::Middleware do
327
- redirect_to upgrade_path unless browser.modern? || request.env["PATH_INFO"] == "/exclude_me"
318
+ redirect_to upgrade_path if browser.ie? && request.env["PATH_INFO"] != "/exclude_me"
328
319
  end
329
320
  ```
330
321
 
331
- ### Migrating to v2
332
-
333
- #### Troubleshooting
334
-
335
- ##### `TypeError: no implicit conversion of Hash into String`
336
-
337
- The class constructor now has a different signature. Change the instantiation from `Browser.new(options)` to `Browser.new(ua, options)`, where:
338
-
339
- - `ua`: must be a string representing the user agent.
340
- - `options`: must be a hash (for now it only accepts the `accept_language` option).
341
-
342
- ##### `NoMethodError: undefined method 'user_agent'`
343
-
344
- `.ua` can now be used to retrieve the full User Agent string.
345
-
346
322
  ## Development
347
323
 
348
324
  ### Versioning
data/bots.yml CHANGED
@@ -1,299 +1,305 @@
1
1
  ---
2
- 200pleasebot: "200PleaseBot"
3
- 360spider: "360Spider"
4
- abot: "CrawlDaddy, abot"
5
- addthis: "AddThis"
6
- adldxbot: "Microsoft Bing Ads"
7
- admantx: "ADmantX Platform Semantic Analyzer"
8
- adsbot-google: "Google Adwords"
9
- adstxtcrawler: "AdsTxtCrawler"
10
- advbot: "AdvBot"
11
- ahrefsbot: "Ahrefs backlinks research tool"
12
- alexa: "Alexa Crawler"
13
- anderspink: "AndersPinkBot"
14
- apache-httpclient: "Java http library"
15
- apachebench: "ApacheBench (ab)"
2
+ 200pleasebot: 200PleaseBot
3
+ 360spider: 360Spider
4
+ abot: CrawlDaddy, abot
5
+ addthis: AddThis
6
+ adldxbot: Microsoft Bing Ads
7
+ admantx: ADmantX Platform Semantic Analyzer
8
+ adsbot-google: Google Adwords
9
+ adstxtcrawler: AdsTxtCrawler
10
+ advbot: AdvBot
11
+ ahrefsbot: Ahrefs backlinks research tool
12
+ alexa: Alexa Crawler
13
+ anderspink: AndersPinkBot
14
+ apache-httpclient: Java http library
15
+ apachebench: ApacheBench (ab)
16
16
  apis-google: APIs-Google
17
- appengine-google: "Google App Engine"
18
- applebot: "Apple Bot"
19
- archive.org_bot: "Internet Archive (archive.org)"
20
- archiveteam archivebot: "ArchiveTeam ArchiveBot"
21
- ask jeeves: "Ask Jeeves"
22
- asynchttpclient: "Java http and WebSocket client library"
23
- awe.sm: "Awe.sm URL expander"
24
- baidu: "Baidu"
25
- barkrowler: "Barkrowler"
26
- bdcbot: "Big Data Corp"
27
- bingbot: "Microsoft Bing"
28
- bingpreview: "Microsoft Bing preview"
29
- bitlybot: "bit.ly bot"
30
- blekkobot: "Blekkobot"
31
- blexbot: "BLEXBot (webmeup)"
32
- bot@linkfluence.net: "Linkfluence bot"
33
- bubing: "BUbiNG"
34
- bufferbot: "BufferBot"
35
- buibui-checkbot: "buibui"
36
- butterfly: "Topsy Labs"
37
- buzzbot: "Buzzbot"
38
- buzztalk: "buzztalk"
39
- catchbot: "CatchBot (catchbot.com)"
40
- check_http: "Nagios monitor"
41
- cipacrawler: "CipaCrawler"
42
- cliqzbot: "Cliqzbot"
43
- cloudflare: "CloudFlare-AlwaysOnline"
44
- cmradar/0.1: "CMRadar/0.1"
45
- coldfusion: "ColdFusion http library"
46
- commoncrawl: "CCBot"
47
- comodo ssl checker: "COMODO SSL Checker"
48
- comodo-webinspector-crawler: "Comodo"
49
- copypants: "BotPants"
50
- crowsnest: "Crowsnest"
51
- curabot: "cura.yt"
52
- curl: "curl unix CLI http client"
53
- dap/nethttp: "DAP/NetHTTP"
54
- datafeedwatch: "DataFeedWatch"
55
- datagnionbot: "datagnion.com/bot.html"
56
- datanyze: "Datanyze"
57
- daumoa: "Korean portal and search engine indexing bot"
58
- developers.google.com/+/web/snippet/: "Google Plus"
59
- diffbot: "Diffbot"
60
- digitalpersona fingerprint software: "HP Fingerprint scanner"
61
- domain re-animator bot: "Domain Re-Animator Bot"
62
- domainsbot: "DomainsBot"
63
- domaintunocrawler: "DomainTuno"
64
- dotbot: "Dot Bot"
65
- duckduck: "Duck Duck Go"
66
- elb-healthchecker: "AWS ELB HealthChecker"
67
- embedly: "Embedly"
68
- eoaagent: "EOAAgent"
69
- everyonesocialbot: "EveryoneSocial"
70
- evrinid: "Evri bot"
71
- exabot: "Exalead's bot"
72
- exaleadcloudview: "ExaleadCloudView"
73
- ez publish: "eZ Publish Link Validator"
74
- facebookexternalhit: "Facebook Bot"
75
- facebot: "Facebook Bot"
76
- feedburner: "RSS bot"
77
- feedfetcher-google: "Google Feedfetcher"
78
- findxbot: "Findxbot"
79
- flipboardproxy: "FlipboardProxy"
80
- friendfeedbot: "FriendFeed"
81
- fyrebot: "Fyrebot"
82
- garlik: "GarlikCrawler"
83
- genieo: "Genieo Web filter bot"
84
- germcrawler: "GermCrawler"
85
- getprismatic.com: "getprismatic.com"
86
- gigabot: "Gigabot spider"
87
- gimme60bot: "Gimme60 (gimme60.com)"
88
- gimmeusabot: "Gimme60 (gimme60.com)"
89
- go http package: "Go http library"
90
- google page speed insights: "Google Page Speed Insights"
91
- google Web Preview: "Google Instant Previews crawler"
92
- google-site-verification: Google-Site-Verification
93
- google-structured-data-testing-tool: "Google-StructuredDataTestingTool"
94
- google-structureddatatestingtool: "Google-StructuredDataTestingTool"
95
- google-xrawler: "Google Shopping"
96
- googlebot: "Google Bot"
97
- googlestackdrivermonitoring-uptimechecks: "GoogleStackdriverMonitoring-UptimeChecks"
98
- grapeshotcrawler: "GrapeshotCrawler"
99
- gravitybot: "Gravity Bot"
100
- hatena::bookmark: "Hatena::Bookmark"
101
- heritrix: "heritrix"
102
- https://developers.google.com/+/web/snippet: "Google+ Snippet Fetcher"
103
- httrack: "HTTrack"
104
- hubspot: "HubSpot"
105
- ia_archiver: "Internet Archive (WayBackMachine)"
106
- icoreservice: "iCoreService"
107
- idmarch: "idmarch.org/bot.html"
108
- implisensebot: "ImplisenseBot"
109
- inagist: "URL resolver"
110
- insieve: "Insieve Bot"
111
- insitesbot: "Insitesbot"
112
- instapaper: "Instapaper"
113
- istellabot: "IstellaBot"
114
- jaunt: "Jaunt - Java Web Scraping & JSON Querying"
115
- jetslide: "Jetslide"
116
- jobseeker: "jobseeker.com.au/bot.html"
117
- jooble: "Jooble"
118
- js-kit: "URL resolver"
119
- kemvibot: "Kemvi"
120
- kimengi: "Kimengi Bot"
121
- knows.is: "knows.is"
122
- kojitsubot: "Kojitsubot"
123
- komodiabot: "KomodiaBot"
124
- kraken: "kraken"
125
- laconica: "Laconica"
126
- lijit crawler: "Lijit"
127
- linkdexbot: "Linkdex Bot"
128
- linkedinbot: "LinkedIn"
129
- linkscrawler: "LinksCrawler"
130
- linode: "Linode Longview"
131
- lipperhey: "Lipperhey"
132
- livelapbot: "Livelapbot"
133
- loadtimebot: "Load Time Bot"
134
- longurl: "URL expander service"
135
- ltx71: "ltx71.com"
136
- lumibot: "Lumibot"
137
- magpie-crawler: "magpie-crawler"
138
- mail.ru_bot: "Mail.ru Bot"
139
- mappydata: "Mappy"
140
- mastodon: "Mastodon URL expander"
141
- mauibot: "MauiBot"
142
- meanpathbot: "meanpath"
143
- mediapartners-google: "Google Adsense bot"
144
- megaindex.ru: "MegaIndex"
145
- memorybot: "mignify.com/bot.html"
146
- metauri: "MetaURI"
147
- mfe_expand: "Mcafee spider"
148
- mir web crawler: "MIR web crawler"
149
- mj12bot: "Majestic-12 spider"
150
- mojeekbot: "Mojeek UK search crawler"
151
- ms search 6.0 robot: "MS Search 6.0 Robot"
152
- msnbot-media: "Microsoft media bot"
153
- msnbot: "Microsoft bot"
154
- nerdybot: "NerdyBot"
155
- netcraft: "Netcraft"
156
- netstate: "netEstate NE Crawler"
157
- netvibes: "Personalized dashboard bot"
158
- netzcheckbot: "netzcheck"
159
- newrelicmonitor: "NewRelic monitor"
160
- newrelicpinger: "NewRelicPinger"
161
- newsme: "newsme"
162
- niki-bot: "niki-bot"
163
- ning: "NING - Yet Another Twitter Swarmer"
164
- nutch: "Apache search spider"
165
- openhosebot: "OpenHoseBot"
166
- orangebot: "OrangeBot"
167
- paessler: "paessler.com - PRTG Network Monitor"
168
- pagesinventory: "pagesinventory.com"
169
- panopta: "Monitoring service"
170
- paperlibot: "PaperLi"
171
- peerindex: "peerindex"
172
- percolatecrawler: "PercolateCrawler"
173
- perfectmarketkwtbot: "PerfectMarket"
174
- phantomjs: "PhantomJS"
175
- pingdom: "Pingdom monitoring"
176
- pinterest: "Pinterest"
177
- plukkie: "botje.com/plukkie.htm"
178
- pr-cy.ru: "PR-CY.RU"
179
- privacyawarebot: "PrivacyAwareBot"
180
- proximic: "Proximic Spider"
181
- psbot-page: "Picsearch"
182
- pu_in: "Pu_iN Crawler"
183
- publiclibraryarchive.org: "publiclibraryarchive.org"
184
- pycurl: "Python http library"
185
- python-httplib2: "Python-httplib2"
186
- python-requests: "Python http library"
187
- python-urllib: "Python http library"
188
- queryseeker: "QuerySeekerSpider"
189
- quick-crawler: "Quick-Crawler"
190
- quicklook: "QuickLook"
191
- re-animator: "Domain Re-Animator Bot"
192
- readability: "Readability"
193
- rebelmouse: "RebelMouse"
194
- redditbot: "Reddit Bot"
195
- relateiq: "RelateIQ"
196
- riddler: "Riddler Bot"
197
- rogerbot: "SeoMoz spider"
198
- rssmicro: "RSS/Atom Feed Robot (rssmicro.com)"
199
- scouturlmonitor: "ScoutURLMonitor"
200
- scrapy: "Scrapy"
17
+ appengine-google: Google App Engine
18
+ applebot: Apple Bot
19
+ archive.org_bot: Internet Archive (archive.org)
20
+ archiveteam archivebot: ArchiveTeam ArchiveBot
21
+ ask jeeves: Ask Jeeves
22
+ asynchttpclient: Java http and WebSocket client library
23
+ awe.sm: Awe.sm URL expander
24
+ baidu: Baidu
25
+ barkrowler: Barkrowler
26
+ bdcbot: Big Data Corp
27
+ bingbot: Microsoft Bing
28
+ bingpreview: Microsoft Bing preview
29
+ bitlybot: bit.ly bot
30
+ blekkobot: Blekkobot
31
+ blexbot: BLEXBot (webmeup)
32
+ bot@linkfluence.net: Linkfluence bot
33
+ bubing: BUbiNG
34
+ bufferbot: BufferBot
35
+ buibui-checkbot: buibui
36
+ butterfly: Topsy Labs
37
+ buzzbot: Buzzbot
38
+ buzztalk: buzztalk
39
+ catchbot: CatchBot (catchbot.com)
40
+ check_http: Nagios monitor
41
+ chrome-lighthouse: Chrome-Lighthouse
42
+ cipacrawler: CipaCrawler
43
+ cliqzbot: Cliqzbot
44
+ cloudflare: CloudFlare-AlwaysOnline
45
+ cmradar/0.1: CMRadar/0.1
46
+ coldfusion: ColdFusion http library
47
+ commoncrawl: CCBot
48
+ comodo ssl checker: COMODO SSL Checker
49
+ comodo-webinspector-crawler: Comodo
50
+ copypants: BotPants
51
+ crowsnest: Crowsnest
52
+ curabot: cura.yt
53
+ curl: curl unix CLI http client
54
+ dap/nethttp: DAP/NetHTTP
55
+ datafeedwatch: DataFeedWatch
56
+ datagnionbot: datagnion.com/bot.html
57
+ datanyze: Datanyze
58
+ daumoa: Korean portal and search engine indexing bot
59
+ developers.google.com/+/web/snippet/: Google Plus
60
+ diffbot: Diffbot
61
+ digitalpersona fingerprint software: HP Fingerprint scanner
62
+ domain re-animator bot: Domain Re-Animator Bot
63
+ domainsbot: DomainsBot
64
+ domaintunocrawler: DomainTuno
65
+ dotbot: Dot Bot
66
+ duckduck: Duck Duck Go
67
+ elb-healthchecker: AWS ELB HealthChecker
68
+ embedly: Embedly
69
+ eoaagent: EOAAgent
70
+ everyonesocialbot: EveryoneSocial
71
+ evrinid: Evri bot
72
+ exabot: Exalead's bot
73
+ exaleadcloudview: ExaleadCloudView
74
+ ez publish: eZ Publish Link Validator
75
+ facebookexternalhit: Facebook Bot
76
+ facebot: Facebook Bot
77
+ feedburner: RSS bot
78
+ feedfetcher-google: Google Feedfetcher
79
+ findxbot: Findxbot
80
+ flipboardproxy: FlipboardProxy
81
+ friendfeedbot: FriendFeed
82
+ fyrebot: Fyrebot
83
+ garlik: GarlikCrawler
84
+ genieo: Genieo Web filter bot
85
+ germcrawler: GermCrawler
86
+ getprismatic.com: getprismatic.com
87
+ gigabot: Gigabot spider
88
+ gimme60bot: Gimme60 (gimme60.com)
89
+ gimmeusabot: Gimme60 (gimme60.com)
90
+ go http package: Go http library
91
+ go-http-client: Go http client
92
+ google page speed insights: Google Page Speed Insights
93
+ google web preview: Google Instant Previews crawler
94
+ google-site-verification: Google Site Verification
95
+ google-structured-data-testing-tool: Google Structured Data Testing Tool
96
+ google-structureddatatestingtool: Google Structured Data Testing Tool
97
+ google-xrawler: Google Shopping
98
+ googlebot: Google Bot
99
+ googleimageproxy: Google Image Proxy
100
+ googlestackdrivermonitoring-uptimechecks: Google Stackdriver Monitoring - Uptime Checks
101
+ grapeshotcrawler: GrapeshotCrawler
102
+ gravitybot: Gravity Bot
103
+ hatena::bookmark: Hatena::Bookmark
104
+ heritrix: heritrix
105
+ https://developers.google.com/+/web/snippet: Google+ Snippet Fetcher
106
+ httrack: HTTrack
107
+ hubspot: HubSpot
108
+ ia_archiver: Internet Archive (WayBackMachine)
109
+ icoreservice: iCoreService
110
+ idmarch: idmarch.org/bot.html
111
+ implisensebot: ImplisenseBot
112
+ inagist: URL resolver
113
+ insieve: Insieve Bot
114
+ insitesbot: Insitesbot
115
+ instapaper: Instapaper
116
+ istellabot: IstellaBot
117
+ jaunt: Jaunt - Java Web Scraping & JSON Querying
118
+ jetslide: Jetslide
119
+ jobseeker: jobseeker.com.au/bot.html
120
+ jooble: Jooble
121
+ js-kit: URL resolver
122
+ kemvibot: Kemvi
123
+ kimengi: Kimengi Bot
124
+ knows.is: knows.is
125
+ kojitsubot: Kojitsubot
126
+ komodiabot: KomodiaBot
127
+ kraken: kraken
128
+ laconica: Laconica
129
+ lijit crawler: Lijit
130
+ linkdexbot: Linkdex Bot
131
+ linkedinbot: LinkedIn
132
+ linkscrawler: LinksCrawler
133
+ linode: Linode Longview
134
+ lipperhey: Lipperhey
135
+ livelapbot: Livelapbot
136
+ loadtimebot: Load Time Bot
137
+ longurl: URL expander service
138
+ ltx71: ltx71.com
139
+ lumibot: Lumibot
140
+ magpie-crawler: magpie-crawler
141
+ mail.ru_bot: Mail.ru Bot
142
+ mappydata: Mappy
143
+ mastodon: Mastodon URL expander
144
+ mauibot: MauiBot
145
+ meanpathbot: meanpath
146
+ mediapartners-google: Google Adsense bot
147
+ megaindex.ru: MegaIndex
148
+ memorybot: mignify.com/bot.html
149
+ metauri: MetaURI
150
+ mfe_expand: Mcafee spider
151
+ mir web crawler: MIR web crawler
152
+ mj12bot: Majestic-12 spider
153
+ mojeekbot: Mojeek UK search crawler
154
+ ms search 6.0 robot: MS Search 6.0 Robot
155
+ msnbot-media: Microsoft media bot
156
+ msnbot: Microsoft bot
157
+ nerdybot: NerdyBot
158
+ netcraft: Netcraft
159
+ netstate: netEstate NE Crawler
160
+ netvibes: Personalized dashboard bot
161
+ netzcheckbot: netzcheck
162
+ newrelicmonitor: NewRelic monitor
163
+ newrelicpinger: NewRelicPinger
164
+ newsme: newsme
165
+ niki-bot: niki-bot
166
+ ning: NING - Yet Another Twitter Swarmer
167
+ nutch: Apache search spider
168
+ openhosebot: OpenHoseBot
169
+ orangebot: OrangeBot
170
+ paessler: paessler.com - PRTG Network Monitor
171
+ pagesinventory: pagesinventory.com
172
+ panopta: Monitoring service
173
+ paperlibot: PaperLi
174
+ peerindex: peerindex
175
+ percolatecrawler: PercolateCrawler
176
+ perfectmarketkwtbot: PerfectMarket
177
+ phantomjs: PhantomJS
178
+ pingdom: Pingdom monitoring
179
+ pinterest: Pinterest
180
+ plukkie: botje.com/plukkie.htm
181
+ pr-cy.ru: PR-CY.RU
182
+ privacyawarebot: PrivacyAwareBot
183
+ proximic: Proximic Spider
184
+ psbot-page: Picsearch
185
+ pu_in: Pu_iN Crawler
186
+ publiclibraryarchive.org: publiclibraryarchive.org
187
+ pycurl: Python http library
188
+ python-httplib2: Python-httplib2
189
+ python-requests: Python http library
190
+ python-urllib: Python http library
191
+ queryseeker: QuerySeekerSpider
192
+ quick-crawler: Quick-Crawler
193
+ quicklook: QuickLook
194
+ re-animator: Domain Re-Animator Bot
195
+ readability: Readability
196
+ rebelmouse: RebelMouse
197
+ redditbot: Reddit Bot
198
+ relateiq: RelateIQ
199
+ riddler: Riddler Bot
200
+ rogerbot: SeoMoz spider
201
+ rssmicro: RSS/Atom Feed Robot (rssmicro.com)
202
+ scouturlmonitor: ScoutURLMonitor
203
+ scrapy: Scrapy
201
204
  screaming frog seo spider: Screaming Frog SEO Spider
202
- searchmetricsbot: "SearchmetricsBot"
203
- semanticbot: "Semanticbot"
204
- semrushbot: "SEO analysis bot"
205
- seo-audit: "seo-audit-check-bot"
206
- seodiver: "SEOdiver"
207
- seokicks: "SEOKicks"
208
- seznambot: "SeznamBot"
209
- shopwiki: "ShopWiki"
210
- shortlinktranslate: "Link shortener"
211
- showyoubot: "Showyou iOS app spider"
212
- siege: "Joe Dog Siege"
213
- sistrix: "SISTRIX"
214
- sitecheck: "SiteCheck sitecrawl"
215
- siteuptime: "Site monitoring services"
216
- slack: "Slackbot-LinkExpanding"
217
- slackbot: "Slackbot 1.0(+https://api.slack.com/robots)"
218
- slack-imgproxy: "Slack-ImgProxy 0.19 (+https://api.slack.com/robots)"
219
- slack-linkexpanding: "Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)"
220
- slurp: "Yahoo spider"
221
- smtbot: "SimilarTech"
222
- snapchat: "Snapchat"
223
- socialrank: "SocialRankIOBot"
224
- sogou: "Chinese search engine"
225
- spbot: "OpenLinkProfiler"
226
- spinn3r: "Spinn3r aggregator"
227
- sputnikbot: "SputnikBot"
228
- squider: "Squider"
229
- statuscake: "StatusCake"
230
- stripe: "Stripe"
231
- swiftbot: "Swiftype Bot"
232
- tangibleebot: "TangibleeBot"
233
- teeraid: "TeeRaidBot"
234
- test certificate info: "C http library?"
235
- tineye: "TinEye Bot"
236
- traackr: "Traackr Bot"
237
- trendictionbot: "Trendiction Search"
238
- trendsmap: "Trendsmap Resolver"
239
- turnitinbot: "TurnitinBot"
240
- tweetedtimes: "The Tweeted Times"
241
- tweetmemebot: "TweetMeMe Crawler"
242
- twikle: "Social web search bot"
243
- twitjobsearch: "TwitJobSearch"
244
- twitmunin: "Twitmunin"
245
- twitterbot: "Twitter URL expander"
246
- twurly: "Twurly"
247
- typhoeus: "Typhoeus"
248
- umbot: "uberMetrics"
249
- unwindfetch: "Gnip"
250
- updown: "Updown.io monitor"
251
- uptimerobot: "Uptime Robot"
252
- vagabondo: "Vagabondo"
253
- vb project: "Visual Basic"
254
- vigil: "Vigil"
255
- vkshare: "VKontake Sharer"
256
- voilabot: "VoilaBot"
257
- vrcrawler: "Venture Radar"
258
- wasalive-bot: "Wasalive Bots"
259
- watchsumo: "WatchSumo"
260
- wbsearchbot: "Ware Bay Best Buys"
261
- webceo: "online-webceo-bot"
262
- webscout: "Webscout"
263
- wesee: "WeSEE"
264
- wget: "wget unix CLI http client"
265
- whatsapp: "WhatsApp"
266
- wikido: "WikiDo"
267
- woorank: "WooRank"
268
- wordpress: "WordPress spider"
269
- woriobot: "woriobot"
270
- wormly: "WormlyBot"
271
- wotbox: "Wotbox"
272
- xenu link sleuth: "Xenu Link Sleuth"
273
- xing-contenttabreceiver: "Xing bot"
274
- xovibot: "XoviBot"
275
- yacybot: "YaCy"
276
- yahoo-ad-monitoring: "Yahoo Ad monitoring"
277
- yandex: "Yandex"
278
- yanga: "Yanga WorldSearch Bot"
279
- yeti: "Naver Corp"
280
- yourls: "YOURLS"
281
- zabbix: 'Zabbix'
282
- zelist.ro: "feed parser"
283
- zibb: "ZIBB spider"
284
- zitebot: "Zite"
285
- zoombot: "ZoomBot"
286
- zoominfobot: "ZoominfoBot"
287
- zyborg: "Zyborg"
205
+ searchmetricsbot: SearchmetricsBot
206
+ semanticbot: Semanticbot
207
+ semrushbot: SEO analysis bot
208
+ seo-audit: seo-audit-check-bot
209
+ seobilitybot: SeobilityBot
210
+ seodiver: SEOdiver
211
+ seokicks: SEOKicks
212
+ seznambot: SeznamBot
213
+ shopwiki: ShopWiki
214
+ shortlinktranslate: Link shortener
215
+ showyoubot: Showyou iOS app spider
216
+ siege: Joe Dog Siege
217
+ sistrix: SISTRIX
218
+ sitecheck: SiteCheck sitecrawl
219
+ siteuptime: Site monitoring services
220
+ skypeuripreview: SkypeUriPreview
221
+ slack-imgproxy: Slack Image Proxy
222
+ slack-linkexpanding: Slack Link Expanding
223
+ slack: Slack Link Expanding
224
+ slackbot: Slackbot
225
+ slurp: Yahoo spider
226
+ smtbot: SimilarTech
227
+ snapchat: Snapchat
228
+ socialrank: SocialRankIOBot
229
+ sogou: Chinese search engine
230
+ spbot: OpenLinkProfiler
231
+ spinn3r: Spinn3r aggregator
232
+ sputnikbot: SputnikBot
233
+ squider: Squider
234
+ statuscake: StatusCake
235
+ stripe: Stripe
236
+ swiftbot: Swiftype Bot
237
+ tangibleebot: TangibleeBot
238
+ teeraid: TeeRaidBot
239
+ test certificate info: C http library?
240
+ the knowledge ai: Knowledge AI Bot
241
+ tineye: TinEye Bot
242
+ traackr: Traackr Bot
243
+ trendictionbot: Trendiction Search
244
+ trendsmap: Trendsmap Resolver
245
+ turnitinbot: TurnitinBot
246
+ tweetedtimes: The Tweeted Times
247
+ tweetmemebot: TweetMeMe Crawler
248
+ twikle: Social web search bot
249
+ twitjobsearch: TwitJobSearch
250
+ twitmunin: Twitmunin
251
+ twitterbot: Twitter URL expander
252
+ twurly: Twurly
253
+ typhoeus: Typhoeus
254
+ umbot: uberMetrics
255
+ unwindfetch: Gnip
256
+ updown: Updown.io monitor
257
+ uptimerobot: Uptime Robot
258
+ vagabondo: Vagabondo
259
+ vb project: Visual Basic
260
+ vigil: Vigil
261
+ vkshare: VKontake Sharer
262
+ voilabot: VoilaBot
263
+ vrcrawler: Venture Radar
264
+ wasalive-bot: Wasalive Bots
265
+ watchsumo: WatchSumo
266
+ wbsearchbot: Ware Bay Best Buys
267
+ webceo: online-webceo-bot
268
+ webscout: Webscout
269
+ wesee: WeSEE
270
+ wget: wget unix CLI http client
271
+ whatsapp: WhatsApp
272
+ wikido: WikiDo
273
+ woorank: WooRank
274
+ wordpress: WordPress spider
275
+ woriobot: woriobot
276
+ wormly: WormlyBot
277
+ wotbox: Wotbox
278
+ xenu link sleuth: Xenu Link Sleuth
279
+ xing-contenttabreceiver: Xing bot
280
+ xovibot: XoviBot
281
+ yacybot: YaCy
282
+ yahoo-ad-monitoring: Yahoo Ad monitoring
283
+ yandex: Yandex
284
+ yanga: Yanga WorldSearch Bot
285
+ yeti: Naver Corp
286
+ yourls: YOURLS
287
+ zabbix: Zabbix
288
+ zelist.ro: feed parser
289
+ zibb: ZIBB spider
290
+ zitebot: Zite
291
+ zoombot: ZoomBot
292
+ zoominfobot: ZoominfoBot
293
+ zyborg: Zyborg
288
294
 
289
295
  # Generic lib user agents go here.
290
- eventmachine httpclient: "Ruby http library"
291
- go 1.1 package http: "Go 1.1 package http"
292
- htmlparser: "HTMLParser"
293
- http_request2: "HTTP_Request2"
294
- httpclient: "HTTPClient"
295
- jakarta commons: "Jakarta Commons HttpClient"
296
- java: "Generic Java http library"
297
- libwww-perl: "Perl client-server library"
298
- lwp-trivial: "Another Perl library"
299
- ruby: "Ruby"
296
+ eventmachine httpclient: Ruby http library
297
+ go 1.1 package http: Go 1.1 package http
298
+ htmlparser: HTMLParser
299
+ http_request2: HTTP_Request2
300
+ httpclient: HTTPClient
301
+ jakarta commons: Jakarta Commons HttpClient
302
+ java: Generic Java http library
303
+ libwww-perl: Perl client-server library
304
+ lwp-trivial: Another Perl library
305
+ ruby: Ruby