User Agents of Visitors

This page demonstrates showing query result from database.

Below list of user agents are collected from the visitor's HTTP header.

stats ready

User AgentCount
Windows87,584
Bots19,086
curl15,240
Android5,954
MacOS5,792
Linux4,314
Other1,513
iPhone502
ChromeOS96
iPad87
SonyEricsson84
FreeBSD52
Links30
BlackBerry30
NetBSD26
OpenBSD20
Wget14
Lynx6
Bot AgentCount
ClaudeBot2,605
CensysInspect2,257
PythonBot2,084
InternetMeasurement1,709
OpenAIBot1,663
PaloBot1,628
GoBot934
BingBot820
AhrefsBot809
YandexBot758
GoogleBot632
FacebookBot617
SemrushBot589
Amazonbot562
MJ12Bot232
DuckDuckGoBot168
DotBot162
Hkfl-Bot137
MojeekBot80
TwitterBot77
BLEXBot65
BaiduBot65
NetcraftSurveyAgent64
NodeBot52
HackerNewsBot46
wpbot46
JavaBot21
SERankingBacklinksBot17
DataForSeoBot15
ImagesiftBot15
org_bot14
Scrapy14
HaloBot12
expo-research-bot12
AdsBot-Google11
msnbot11
Exabot10
DartBot8
HawaiiBot8
GulperBot6
Gaisbot5
TurnitinBot4
Facebot4
TelegramBot3
ZoomBot3
CCBot3
SlackBot2
MastodonBot2
Readybot2
AwarioBot2
Aranet-SearchBot2
SleepBot2
DejaShipBot2
WhatsAppBot1
YahooBot1
Discordbot1
EveryoneSocialBot1
LinkedInBot1
LivelapBot1
Pinterestbot1
bot1
Quora-Bot1
RepoLookoutBot1
Dub.co Bot1
Bravebot1
VertexWP Bot1
Googlebot1
PulseGateBot1
Other AgentCount
iaudit/0.1224
Mozilla/5.0 (l9scan/2.0.934323e2631313e2430313e2237313; +https://leakix.net)164
Mozilla/5.0145
Mozilla/5.0 zgrab/0.x132
Mozilla/5.0 (compatible)96
Mozilla/5.0 (compatible; ModatScanner/1.2; +https://modat.io/)44
ct‑git‑scanner/0.436
Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)34
Mozilla/5.0 (compatible; ModatScanner/1.1; +https://modat.io/)32
Mozilla/5.0 (compatible; DomainExtractor/1.0)22
firefox19
got (https://github.com/sindresorhus/got)18
Apache/2.4.34 (Ubuntu) OpenSSL/1.1.1 (internal dummy connection)17
rest-client/2.1.0 (linux x86_64) ruby/3.2.2p5314
facebookscraper/1.0( http://www.facebook.com/sharescraper_help.php)10
Mozilla/5.0 (compatible; ModatScanner/1.0; +https://modat.io/)9
SEC-SGHE900/1.0 NetFront/3.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1378; nl; U; ssr)8
MOT-V177/0.1.75 UP.Browser/6.2.3.9.c.12 (GUI) MMP/2.0 UP.Link/6.3.1.13.08
Jigsaw/2.2.5 W3C_CSS_Validator_JFouffa/2.08
portalmmm/2.0 N410i(c20;TB)8
Download Demon/3.5.0.117
CSSCheck/1.2.27
LG-GC900/V10a Obigo/WAP2.0 Profile/MIDP-2.1 Configuration/CLDC-1.17
Mozilla/5.0 (Unknown; UNIX BSD/SYSV system) AppleWebKit/538.1 (KHTML, like Gecko) QupZilla/1.7.0 Safari/538.17
Mozilla/3.0 (compatible; NetPositive/2.1.1; BeOS)6
MOTORIZR-Z8/46.00.00 Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; 356) Opera 8.65 [it] UP.Link/6.3.0.0.06
Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)6
Mozilla/5.0 (OS/2; Warp 4.5; rv:31.0) Gecko/20100101 Firefox/31.0 SeaMonkey/2.286
HTMLParser/1.66
POLARIS/6.01(BREW 3.1.5;U;en-us;LG;LX265;POLARIS/6.01/WAP;)MMP/2.0 profile/MIDP-201 Configuration /CLDC-1.16
Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.16823/1428; U; en) Presto/2.2.06
MobileSafari/600.1.4 CFNetwork/711.1.12 Darwin/14.0.06
Adobe Application Manager 2.06
Microsoft URL Control - 6.00.88626
Opera/9.80 (J2ME/MIDP; Opera Mini/8.0.35626/37.8918; U; en) Presto/2.12.423 Version/12.166
Mozilla/3.01Gold (Win95; I)6
Mozilla/5.0 (X11; U; SunOS sun4m; en-US; rv:1.4b) Gecko/20030517 Mozilla Firebird/0.66
Avant Browser/1.2.789rel1 (http://www.avantbrowser.com)6
Mozilla/5.0 (compatible; Yeti/1.1; +https://naver.me/spd)5
Ruby5
Mozilla/4.0 (PSP (PlayStation Portable); 2.00)5
Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es705
LG-LX550 AU-MIC-LX550/2.0 MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.15
Mozilla/2.0 (compatible; Ask Jeeves/Teoma)5
P3P Validator5
Mozilla/5.0 (compatible; alexa site audit/1.0; +http://www.alexa.com/help/webmasters; )5
Mozilla/4.0 (compatible; MSIE 5.15; Mac_PowerPC)5
Mozilla/5.0 (OS/2; Warp 4.5; rv:24.0) Gecko/20100101 Firefox/24.0 SeaMonkey/2.215
Peach/1.01 (Ubuntu 8.04 LTS; U; en)5
Mozilla/5.0 (OS/2; Warp 4.5; rv:38.0) Gecko/20100101 Firefox/38.05
SEC-SGHX210/1.0 UP.Link/6.3.1.13.05
Mozilla/1.22 (compatible; MSIE 5.01; PalmOS 3.0) EudoraWeb 2.15
Opera/9.80 (S60; SymbOS; Opera Mobi/499; U; ru) Presto/2.4.18 Version/10.005
grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http://grub.org)5
Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.9a1) Gecko/20060702 SeaMonkey/1.5a5
Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es505
SearchExpress5
MizuCrawler/3.05
SEC-SGHX820/1.0 NetFront/3.2 Profile/MIDP-2.0 Configuration/CLDC-1.14
WebZIP/3.5 (http://www.spidersoft.com)4
Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.114
Mozilla/5.0 (X11; CrOS aarch64 14526.89.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.133 Safari/537.364
Mozilla/5.0 (webOS/1.3; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Desktop/1.04
FeedFetcher-Google; ( http://www.google.com/feedfetcher.html)4
Mozilla/5.0 (OS/2; Warp 4.5; rv:10.0.12) Gecko/20100101 Firefox/10.0.124
Mozilla/4.77 [en] (X11; I; IRIX;64 6.5 IP30)4
Mozilla/5.0 (compatible; Konqueror/3.5; SunOS) KHTML/3.5.1 (like Gecko)4
Mozilla/5.0 (PLAYSTATION 3; 2.00)4
Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.14320/554; U; cs) Presto/2.2.04
nook browser/1.04
Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 es654
Mozilla/5.0 (OS/2; U; OS/2; en-US) AppleWebKit/533.3 (KHTML, like Gecko) QupZilla/1.3.1 Safari/533.34
Vodafone/1.0/V802SE/SEJ001 Browser/SEMC-Browser/4.14
Mozilla/5.0 (OS/2; Warp 4.5; rv:10.0.12) Gecko/20130108 Firefox/10.0.12 SeaMonkey/2.7.24
Mozilla/4.0 (compatible; Dillo 3.0)4
w3m/0.5.14
Xenu Link Sleuth/1.3.84
RecordedFuture Global Inventory Crawler4
Embed PHP library3
W3C_Validator/1.305.2.12 libwww-perl/5.643
Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101 Firefox/45.03
Mozilla/5.0 (SymbianOS/9.1; U; de) AppleWebKit/413 (KHTML, like Gecko) Safari/4133
Mozilla/2.02E (Win95; U)3
Mozilla/4.0 (compatible; MSIE 6.0; j2me) ReqwirelessWeb/3.53
libwww-perl/5.8203
Screaming Frog SEO Spider/8.13
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible3
Opera/9.60 (J2ME/MIDP; Opera Mini/4.1.11320/608; U; en) Presto/2.2.03
WebCopier v4.63
Mozilla/5.0 (OS/2; U; OS/2; en-US) AppleWebKit/533.3 (KHTML, like Gecko) Arora/0.11.0 Safari/533.33
Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.8.1.12) Gecko/20080303 SeaMonkey/1.1.83
wii libnup/1.03
MOT-L7v/08.B7.5DR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.03
MOT-V9mm/00.62 UP.Browser/6.2.3.4.c.1.123 (GUI) MMP/2.03
Web Downloader/6.93
CVE-2025-55182-Checker3
RootEvidence/1.03
DejaShip/1.0 (survival-checker)3
Mozilla/5.0 (compatible; YaK/1.0; http://linkfluence.com/; bot@linkfluence.com)2
Lemmy/0.18.3; +https://zerobytes.monster2
newspaperjs2
MetadataScraper2
Mozilla/5.0 (compatible; Miniflux/2.0.44; +https://miniflux.app)2
Iframely/1.3.1 (+https://iframely.com/docs/about)2
News%20Explorer/247 CFNetwork/1410.0.3 Darwin/22.6.02
Mozilla/5.0 (compatible; Feedspot/1.0 (+https://www.feedspot.com/fs/fetcher; like FeedFetcher-Google)2
trafilatura/1.6.1 (+https://github.com/adbar/trafilatura)2
Mozilla/5.0 (compatible; FlipboardProxy/1.2; +http://flipboard.com/browserproxy)2
newspaper/0.3.02
undici2
node-fetch/1.0 (+https://github.com/bitinn/node-fetch)2
Gregarius/0.5.2 ( http://devlog.gregarius.net/docs/ua)2
Mozilla/4.8 [en] (X11; U; SunOS; 5.7 sun4u)2
colly - https://github.com/gocolly/colly/v22
Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101 Firefox/45.0 SeaMonkey/2.42.9esr2
Mozilla/5.0 (OS/2; Warp 4.5; rv:31.0) Gecko/20100101 Firefox/31.02
Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+2
trafilatura/1.12.2 (+https://github.com/adbar/trafilatura)2
Roku/DVP-4.1 (024.01E01250A)2
POLARIS/6.01 (BREW 3.1.5; U; en-us; LG; LX265; POLARIS/6.01/WAP) MMP/2.0 profile/MIDP-2.1 Configuration/CLDC-1.12
Mozilla/5.0 (Unknown; U; UNIX BSD/SYSV system; C -) AppleWebKit/527 (KHTML, like Gecko, Safari/419.3) Arora/0.10.22
Java/1.6.0_132
Opera/10.61 (J2ME/MIDP; Opera Mini/5.1.21219/19.999; en-US; rv:1.9.3a5) WebKit/534.5 Presto/2.6.302
EmailWolf 1.002
Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.1.0.2342 Mobile Safari/537.10+2
WDG_Validator/1.6.22
FAST-WebCrawler/3.8 (crawler at trd dot overture dot com; http://www.alltheweb.com/help/webmaster/crawler)2
SAMSUNG-S8000/S8000XXIF3 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1 FirePHP/0.32
Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.1b3) Gecko/20090429 Firefox/3.1b32
Mediapartners-Google2
Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/102.0 Safari/537.362
Mozilla/5.0 (compatible; Konqueror/4.1; DragonFly) KHTML/4.1.4 (like Gecko)2
Mozilla/5.0 (compatible; SecurityScanner/1.0)2
Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)2
fasthttp2
MizuCrawler/1.02
Racket/6.8 (net/http-client)1
topicaxis1
Mozilla/5.0 (compatible; Embedly/0.2; +http://support.embed.ly/)1
Mozilla/5.0 (compatible; Embedly/0.2; snap; +http://support.embed.ly/)1
Hacky/1 CFNetwork/1390 Darwin/22.0.01
rss/4.5.61
MetaInspector/5.7.0 (+https://github.com/jaimeiniesta/metainspector)1
newspaper/0.2.81
Mozilla/5.0 (compatible; Miniflux/2.0.31; +https://miniflux.app)1
Mozilla/5.0 (compatible; Miniflux/2.0.36; +https://miniflux.app)1
Mozilla/5.0 (compatible; RSSClients/1.0)1
`Mozilla/5.01
shadowforce.io - sslshed/0.11
cc1
Mozilla/5.0 (X11; CrOS aarch64 14388.61.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.107 Safari/537.361
W3C_Validator/1.6541
DoCoMo/2.0 SH901iC(c100;TB;W24H12)1
Offline Explorer/2.51
Opera/9.30 (Nintendo Wii; U; ; 2047-7; en)1
everyfeed-spider/2.0 (http://www.everyfeed.com)1
Mozilla/4.0 (PDA; PalmOS/sony/model prmr/Revision:1.1.54 (en)) NetFront/3.01
Fuzz Faster U Fool v2.1.01
Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/129.0 Safari/537.361
Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/111.0 Safari/537.361
Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/120.0 Safari/537.361
Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/126.0 Safari/537.361
Mozilla/5.0 (en-us) AppleWebKit/525.13 (KHTML, like Gecko; Google Web Preview) Version/3.1 Safari/525.131
SAMSUNG-SGH-A867/A867UCHJ3 SHP/VPP/R5 NetFront/35 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1 UP.Link/6.3.0.0.01
Fuzz Faster U Fool v2.1.0-dev1
dubox;4.3.9;SM-M145F;android-android;15;JSbridge1.0.10;jointbridge;1.1.39;1
Java/1.8.0_3221
dubox;4.4.2;SM-A556E;android-android;15;JSbridge1.0.10;jointbridge;1.1.39;1
Mozilla/5.0 (compatible; UGAResearchAgent/1.0; Please visit: NISLabUGA.github.io)1
GoogleOther1
Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/4131
Mozilla/5.0 (compatible; showhn-cleaner/1.0)1
Mozilla/5.0 (compatible; showhn-cleaner/1.0; +https://news.ycombinator.com)1
Source Code of user-agents.tsx
(import statements omitted for simplicity, click to expand)
import { proxy } from '../../../db/proxy.js'
import { pick } from 'better-sqlite3-proxy'
import {
  getOtherUserAgents,
  getUAStatsProgress,
} from '../../../db/user-agent.js'
import { Locale, Title } from '../components/locale.js'
import SourceCode from '../components/source-code.js'
import Style from '../components/style.js'
import { Context, getContextLanguage } from '../context.js'
import { o } from '../jsx/jsx.js'
import { Routes } from '../routes.js'
function agentTable(
  title: string,
  rows: [name: string, count: number][],
  locales: string,
) {
  // skip rows with zero count
  rows = rows.filter(row => row[1] > 0)

  // skip empty table
  if (rows.length === 0) return

  // sort by count descending
  rows.sort((a, b) => b[1] - a[1])

  return (
    <table>
      <thead>
        <tr>
          <th>{title}</th>
          <th>Count</th>
        </tr>
      </thead>
      <tbody>
        {[
          rows.map(([name, count]) => (
            <tr>
              <td>{name}</td>
              <td>{count.toLocaleString(locales)}</td>
            </tr>
          )),
        ]}
      </tbody>
    </table>
  )
}

function Tables(attrs: {}, context: Context) {
  let locales = getContextLanguage(context) || 'en-US'
  return (
    <>
      <p>{getUAStatsProgress()}</p>
      {agentTable(
        'User Agent',
        pick(proxy.ua_type, ['name', 'count']).map(row => [
          row.name,
          row.count,
        ]),
        locales,
      )}
      {agentTable(
        'Bot Agent',
        pick(proxy.ua_bot, ['name', 'count']).map(row => [row.name, row.count]),
        locales,
      )}
      {agentTable(
        'Other Agent',
        getOtherUserAgents().map(row => [row.user_agent, row.count]),
        locales,
      )}
    </>
  )
}

let UserAgents = (
  <div id="user-agents">
    <h1>User Agents of Visitors</h1>
    {Style(/* css */ `
#user-agents table {
  border-collapse: collapse;
  margin: 1rem;
  display: inline;
}
#user-agents th,
#user-agents td {
  border: 1px solid var(--text-color, black);
  padding: 0.25rem 0.5rem;
  max-width: calc(90vw - 8rem);
  word-break: break-word;
}
`)}
    <p>This page demonstrates showing query result from database.</p>
    <p>
      Below list of user agents are collected from the visitor's HTTP header.
    </p>
    <Tables />
    <SourceCode page="user-agents.tsx" />
  </div>
)

let routes = {
  '/user-agents': {
    menuText: <Locale en="Visitor Stats" zh_hk="訪客統計" zh_cn="访客统计" />,
    title: (
      <Title
        t={
          <Locale
            en="User Agents of Visitors"
            zh_hk="訪客的用戶代理"
            zh_cn="访客的用戶代理"
          />
        }
      />
    ),
    description: (
      <Locale
        en="User agents of this site's visitors"
        zh_hk="此網站訪客的用戶代理資訊"
        zh_cn="此网站访客的用户代理资讯"
      />
    ),
    node: UserAgents,
  },
} satisfies Routes

export default { routes }