This page demonstrates showing query result from database.
Below list of user agents are collected from the visitor's HTTP header.
stats ready
| User Agent | Count |
|---|---|
| Bots | 2577343 |
| Windows | 165886 |
| curl | 7121 |
| MacOS | 2838 |
| Other | 1850 |
| Linux | 1444 |
| Android | 384 |
| iPhone | 85 |
| ChromeOS | 13 |
| iPad | 13 |
| Links | 1 |
| Bot Agent | Count |
|---|---|
| OpenAIBot | 2575044 |
| InternetMeasurement | 791 |
| GoBot | 585 |
| PaloBot | 555 |
| CensysInspect | 288 |
| NetcraftSurveyAgent | 25 |
| PythonBot | 25 |
| JavaBot | 14 |
| Nmap | 8 |
| GoogleBot | 5 |
| BingBot | 1 |
| TwitterBot | 1 |
| YandexBot | 1 |
| Other Agent | Count |
|---|---|
| python-httpx/0.28.1 | 944 |
| python-httpx/0.24.1 | 182 |
| Mozilla/5.0 | 172 |
| Mozilla/5.0 (l9scan/2.0.934323e2631313e2430313e2237313; +https://leakix.net) | 114 |
| Mozilla/5.0 zgrab/0.x | 68 |
| Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) | 55 |
| Mozilla/5.0 (compatible) | 46 |
| Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com) | 27 |
| Mozilla/5.0 (compatible; wpbot/1.3; +https://forms.gle/ajBaxygz9jSR8p8G9) | 24 |
| Mozilla/5.0 (compatible; ModatScanner/1.2; +https://modat.io/) | 19 |
| Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9) | 10 |
| Mozilla/5.0 (compatible; NetScope-DomainScanner/1.0; security research scanner) | 9 |
| BaiduSpider | 8 |
| ctâgitâscanner/0.4 | 7 |
| Scrapy/2.12.0 (+https://scrapy.org) | 6 |
| CVE-2025-55182-Checker | 6 |
| Mozilla/5.0 (compatible; archive.org_bot +http://archive.org/details/archive.org_bot) Zeno/93f6658 warc/v0.8.73 | 4 |
| RecordedFuture Global Inventory Crawler | 4 |
| req/v3 (https://github.com/imroc/req) | 4 |
| Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org) | 4 |
| MOT-V177/0.1.75 UP.Browser/6.2.3.9.c.12 (GUI) MMP/2.0 UP.Link/6.3.1.13.0 | 3 |
| SonyEricssonT68/R201A | 3 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/125.0 Safari/537.36 | 3 |
| Scrapy/2.13.4 (+https://scrapy.org) | 3 |
| Mozilla/5.0 (compatible; SecurityScanner/1.0) | 3 |
| RootEvidence/1.0 | 3 |
| Mozilla/5.0 (Unknown; UNIX BSD/SYSV system) AppleWebKit/538.1 (KHTML, like Gecko) QupZilla/1.7.0 Safari/538.1 | 2 |
| W3C_Validator/1.654 | 2 |
| Mozilla/5.0 (OS/2; Warp 4.5; rv:31.0) Gecko/20100101 Firefox/31.0 SeaMonkey/2.28 | 2 |
| Mozilla/5.0 (PLAYSTATION 3; 2.00) | 2 |
| CSSCheck/1.2.2 | 2 |
| Mozilla/5.0 (OS/2; Warp 4.5; rv:10.0.12) Gecko/20100101 Firefox/10.0.12 | 2 |
| Opera/9.80 (X11; FreeBSD 8.1-RELEASE i386; Edition Next) Presto/2.12.388 Version/12.10 | 2 |
| MOT-V9mm/00.62 UP.Browser/6.2.3.4.c.1.123 (GUI) MMP/2.0 | 2 |
| Apache/2.4.34 (Ubuntu) OpenSSL/1.1.1 (internal dummy connection) | 2 |
| w3m/0.5.1 | 2 |
| SonyEricssonZ800/R1Y Browser/SEMC-Browser/4.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0 | 2 |
| Mozilla/5.0 (X11; U; FreeBSD; i386; en-US; rv:1.7) Gecko | 2 |
| Mozilla/5.0 (X11; FreeBSD i386; rv:28.0) Gecko/20100101 Firefox/28.0 SeaMonkey/2.25 | 2 |
| Mozilla/5.0 (compatible; Konqueror/4.5; NetBSD 5.0.2; X11; amd64; en_US) KHTML/4.5.4 (like Gecko) | 2 |
| Mozilla/4.8 [en] (X11; U; SunOS; 5.7 sun4u) | 2 |
| Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.16823/1428; U; en) Presto/2.2.0 | 2 |
| Mozilla/5.0 (compatible; Konqueror/4.1; OpenBSD) KHTML/4.1.4 (like Gecko) | 2 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/117.0 Safari/537.36 | 2 |
| python-httpx/0.27.2 | 2 |
| Mozilla/5.0 (OS/2; Warp 4.5; rv:24.0) Gecko/20100101 Firefox/24.0 SeaMonkey/2.21 | 2 |
| SonyEricssonK750i/R1CA Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 | 2 |
| msnbot/0.11 ( http://search.msn.com/msnbot.htm) | 2 |
| Mozilla/5.0 (X11; FreeBSD amd64; rv:5.0) Gecko/20100101 Firefox/5.0 | 2 |
| Scrapy/2.13.3 (+https://scrapy.org) | 2 |
| BlackBerry9530/4.7.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 UP.Link/6.3.1.20.0 | 1 |
| Mozilla/5.0 (X11; U; FreeBSD i386; de-CH; rv:1.9.2.8) Gecko/20100729 Firefox/3.6.8 | 1 |
| FeedFetcher-Google; ( http://www.google.com/feedfetcher.html) | 1 |
| SearchExpress | 1 |
| Fuzz Faster U Fool v2.1.0 | 1 |
| Mozilla/5.0 (compatible; archive.org_bot +http://archive.org/details/archive.org_bot) Zeno/6d7cb95 warc/v0.8.73 | 1 |
| Mozilla/4.0 (compatible; Dillo 3.0) | 1 |
| Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040406 Galeon/1.3.15 | 1 |
| Mozilla/5.0 (X11; U; NetBSD amd64; en-US; rv:1.9.2.15) Gecko/20110308 Namoroka/3.6.15 | 1 |
| SonyEricssonK550i/R1JD Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 | 1 |
| WDG_Validator/1.6.2 | 1 |
| Mozilla/5.0 (compatible; Konqueror/4.1; DragonFly) KHTML/4.1.4 (like Gecko) | 1 |
| Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.8.1.12) Gecko/20080303 SeaMonkey/1.1.8 | 1 |
| Mozilla/5.0 (compatible; archive.org_bot; Wayback Machine Live Record; +http://archive.org/details/archive.org_bot) | 1 |
| Mozilla/5.0 (X11; OpenBSD amd64; rv:28.0) Gecko/20100101 Firefox/28.0 | 1 |
| 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.0 | 1 |
| SonyEricssonS500i/R6BC Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 | 1 |
| Bloglines/3.1 (http://www.bloglines.com) | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/126.0 Safari/537.36 | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/120.0 Safari/537.36 | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/120.0 Safari/537.36 | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/108.0 Safari/537.36 | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/106.0 Safari/537.36 | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/128.0 Safari/537.36 | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Safari/122.0 Safari/537.36 | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/129.0 Safari/537.36 | 1 |
| SonyEricssonW850i/R1ED Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 | 1 |
| Mozilla/5.0 (X11; NetBSD amd64; rv:30.0) Gecko/20100101 Firefox/30.0 | 1 |
| Mozilla/4.0 (PDA; PalmOS/sony/model prmr/Revision:1.1.54 (en)) NetFront/3.0 | 1 |
| 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) | 1 |
| Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.14320/554; U; cs) Presto/2.2.0 | 1 |
| msnbot/1.0 ( http://search.msn.com/msnbot.htm) | 1 |
| Mozilla/5.0 (compatible; Exabot/3.0; http://www.exabot.com/go/robot) | 1 |
| TurnitinBot (https://turnitin.com/robot/crawlerinfo.html) | 1 |
| SonyEricssonW580i/R6BC Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 | 1 |
| 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.0 | 1 |
| Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 | 1 |
| MobileSafari/600.1.4 CFNetwork/711.1.12 Darwin/14.0.0 | 1 |
| Xenu Link Sleuth/1.3.8 | 1 |
| SonyEricssonW810i/R4EA Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0 | 1 |
| BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103 | 1 |
| 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.0 | 1 |
| Mozilla/5.0 (OS/2; Warp 4.5; rv:38.0) Gecko/20100101 Firefox/38.0 | 1 |
| Gaisbot/3.0 (robot@gais.cs.ccu.edu.tw; http://gais.cs.ccu.edu.tw/robot.php) | 1 |
| Vodafone/1.0/V802SE/SEJ001 Browser/SEMC-Browser/4.1 | 1 |
| Mozilla/5.0 (PLAYSTATION 3; 1.10) | 1 |
| DoCoMo/2.0 SH901iC(c100;TB;W24H12) | 1 |
| Mozilla/5.0 (X11; CrOS aarch64 14526.89.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.133 Safari/537.36 | 1 |
| Opera/9.80 (S60; SymbOS; Opera Mobi/499; U; ru) Presto/2.4.18 Version/10.00 | 1 |
| Mozilla/4.0 (compatible; MSIE 5.15; Mac_PowerPC) | 1 |
| Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.1b3) Gecko/20090429 Firefox/3.1b3 | 1 |
| BlackBerry8320/4.2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/100 | 1 |
| Mozilla/5.0 (X11; FreeBSD amd64; rv:54.0) Gecko/20100101 Firefox/54.0 | 1 |
| Mozilla/1.22 (compatible; MSIE 5.01; PalmOS 3.0) EudoraWeb 2.1 | 1 |
| Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101 Firefox/45.0 SeaMonkey/2.42.9esr | 1 |
| Mozilla/5.0 (compatible; UGAResearchAgent/1.0; Please visit: NISLabUGA.github.io) | 1 |
| Opera/9.60 (J2ME/MIDP; Opera Mini/4.1.11320/608; U; en) Presto/2.2.0 | 1 |
| Gregarius/0.5.2 ( http://devlog.gregarius.net/docs/ua) | 1 |
| everyfeed-spider/2.0 (http://www.everyfeed.com) | 1 |
| Java/1.6.0_13 | 1 |
| Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413 (KHTML, like Gecko) Safari/413 | 1 |
| AdsBot-Google ( http://www.google.com/adsbot.html) | 1 |
| Mozilla/5.0 (X11; U; FreeBSD x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16 | 1 |
| Roku/DVP-4.1 (024.01E01250A) | 1 |
| Mozilla/5.0 (X11; NetBSD x86; en-us) AppleWebKit/666.6+ (KHTML, like Gecko) Chromium/20.0.0000.00 Chrome/20.0.0000.00 Safari/666.6+ | 1 |
| Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 | 1 |
| Mozilla/5.0 (BlackBerry; U; BlackBerry 9930; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.267 Mobile Safari/534.11+ | 1 |
| Mozilla/5.0 (compatible; Googlebot/2.1; +https://www.google.com/bot.html) | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/117.0 Safari/537.36 | 1 |
| fasthttp | 1 |
| Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/102.0 Safari/537.36 | 1 |
user-agents.tsximport { proxy } from '../../../db/proxy.js'
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 { o } from '../jsx/jsx.js'
import { Routes } from '../routes.js'function agentTable(title: string, rows: [name: string, count: number][]) {
if (rows.length === 0) return
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}</td>
</tr>
)),
]}
</tbody>
</table>
)
}
function Tables() {
return (
<>
<p>{getUAStatsProgress()}</p>
{agentTable(
'User Agent',
proxy.ua_type.map(row => [row.name, row.count]),
)}
{agentTable(
'Bot Agent',
proxy.ua_bot.map(row => [row.name, row.count]),
)}
{agentTable(
'Other Agent',
getOtherUserAgents().map(row => [row.user_agent, row.count]),
)}
</>
)
}
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 }