User agents in your access log: who is knocking

Every request carries a User-Agent header, and on an internet-facing server most of the unfamiliar ones belong to scanners: research projects and attack-surface services that map the whole internet, open-source tools such as ZGrab and masscan, botnets that announce themselves (libredtail-http), and plenty of clients that claim to be Googlebot without being it. These pages say who sends each one — from the operator's own documentation where there is one — what it asks for, and whether to block it.

The counts are real: LogTriage's production API server (Hetzner, Germany): port 22 open to the internet, key-only since 6 October 2026 (password and keyboard-interactive authentication off); nginx in front of the API on ports 80 and 443. In the 30 days to 1 November 2026 the user agents below sent 28,400 of the 58,974 requests nobody asked for. The header is chosen by the sender, so it tells you what a client claims to be; for Googlebot, the address tells you whether the claim is true.

Examples: Matched in your browser — nothing is sent anywhere.

    User agents explained

    Every catalogued user agent, the 30 days to 1 November 2026

    Requests and source addresses on our server; the most requested path of each. "Googlebot" counts only requests from outside Google's published crawler ranges.

    User agentRequestsSourcesMost requested
    googlebot 16 more from Google's ranges 8,355 11 /.env
    curl 4,897 91 /api/v1/validate/code
    ruhr-uni-bochum 3,769 3 /en
    libredtail-http 3,519 67 /index.php
    websiphon 1,952 8 /.env.staging
    leakix 1,499 10 /.git/config
    go-http-client 1,101 95 /query
    go-web-pentest-tool 512 4 /sqlmanager/index.php
    zgrab 476 335 /developmentserver/metadatauploader
    infrawatch 363 288 /favicon.ico
    research-scan 306 1 /@vite/client
    forestengine 268 131 /favicon.ico
    nokia-genomecrawler 206 38 /manage/account/login
    claudebot 206 7 /robots.txt
    censys 197 87 /app-ads.txt
    cryptohunter-vite 191 1 /__nextjs_source-map
    masscan 151 32 /admin/config.php
    visionheight 138 9 /robots.txt
    palo-alto-xpanse 135 100 /v1/metadata
    python-requests 108 72 /whm
    modat 51 26 /

    Access-log coverage: 30 days. Counts refresh weekly. Scanner probes themselves — the paths — are explained in the web probe reference.

    The counts behind these pages, monthly by email

    What attacked our server each month — SSH logins, web probes, scanners — and how well free IP blocklists caught it. Totals only, never an IP address. You confirm by email, and every email unsubscribes in one click.

    How the address is used: privacy policy.

    Have a whole access log to read?

    The free browser analyzer reads nginx and Apache access logs, groups scanners and probes by source, flags any probe that got a 200 back, and links known user agents and probes to these pages. Nothing is uploaded.

    Investigating something right now? LogTriage checks every address in the file against threat intelligence and writes the incident report: 10 analyses a month free. The incident pack adds the in-depth AI analysis and files up to 100 MB: 25 analyses for $19, one payment, no subscription. Pricing