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
Windows85,381
Bots18,386
curl11,352
Android5,909
MacOS5,663
Linux4,195
Other1,310
iPhone500
ChromeOS96
iPad87
SonyEricsson84
FreeBSD52
Links30
BlackBerry30
NetBSD26
OpenBSD20
Wget14
Lynx5
Bot AgentCount
ClaudeBot2,403
CensysInspect2,138
PythonBot2,082
InternetMeasurement1,669
PaloBot1,600
OpenAIBot1,575
GoBot877
BingBot817
AhrefsBot781
YandexBot756
GoogleBot601
FacebookBot578
SemrushBot576
Amazonbot539
MJ12Bot230
DuckDuckGoBot162
DotBot162
Hkfl-Bot137
MojeekBot78
TwitterBot75
BLEXBot65
NetcraftSurveyAgent62
BaiduBot61
NodeBot52
HackerNewsBot46
wpbot42
JavaBot21
SERankingBacklinksBot17
DataForSeoBot15
ImagesiftBot15
org_bot14
Scrapy13
expo-research-bot12
AdsBot-Google11
msnbot11
Exabot10
HaloBot10
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
Mozilla/5.0 zgrab/0.x132
Mozilla/5.0 (l9scan/2.0.934323e2631313e2430313e2237313; +https://leakix.net)125
Mozilla/5.0118
iaudit/0.1112
Mozilla/5.0 (compatible)96
ct‑git‑scanner/0.436
Mozilla/5.0 (compatible; ModatScanner/1.2; +https://modat.io/)35
Mozilla/5.0 (compatible; ModatScanner/1.1; +https://modat.io/)32
Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)28
firefox19
got (https://github.com/sindresorhus/got)18
Apache/2.4.34 (Ubuntu) OpenSSL/1.1.1 (internal dummy connection)17
Mozilla/5.0 (compatible; DomainExtractor/1.0)15
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
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
LG-GC900/V10a Obigo/WAP2.0 Profile/MIDP-2.1 Configuration/CLDC-1.16
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
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
RecordedFuture Global Inventory Crawler3
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
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
fasthttp1
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 }