{
 "tool": "verify-crawler",
 "endpoint": "https://www.pathwren.workers.dev/tools/verify-crawler",
 "asked": {
  "ip": "66.249.66.1",
  "ua": "Googlebot"
 },
 "summary": "1 address(es) checked against 1984 IPv4 + 1062 IPv6 prefixes from 15 operator sources (mirrored 2026-09-02T02:40:37+00:00).\n1 inside a published range, 0 not, 0 invalid.\n\n66.249.66.1: 66.249.66.0/27 (google-googlebot)\n\nA published prefix is the operator's network, not a signature: presence means the address is inside a range the operator publishes for that crawler, and you should still check the user-agent. ABSENCE PROVES NOTHING — most indexed crawlers publish no ranges at all, and several document reverse DNS instead. Call verification_methods before concluding anything from a miss.",
 "answer": {
  "checked": 1,
  "matched": 1,
  "unmatched": 0,
  "invalid": 0,
  "by_source": {
   "google-googlebot": 1
  },
  "results": [
   {
    "ip": "66.249.66.1",
    "valid": true,
    "verdict": "in-a-published-range",
    "matches": [
     {
      "prefix": "66.249.66.0/27",
      "source": "google-googlebot",
      "operator_source_url": "https://developers.google.com/static/search/apis/ipranges/googlebot.json",
      "mirrored_at": "2026-09-02T02:40:33+00:00",
      "crawlers": [
       {
        "slug": "googlebot",
        "name": "Googlebot",
        "operator": "Google",
        "expected_user_agent_substring": "Googlebot"
       },
       {
        "slug": "googlebot-image",
        "name": "Googlebot-Image",
        "operator": "Google",
        "expected_user_agent_substring": "Googlebot-Image"
       },
       {
        "slug": "googlebot-news",
        "name": "Googlebot-News",
        "operator": "Google",
        "expected_user_agent_substring": "Googlebot-News"
       },
       {
        "slug": "googlebot-video",
        "name": "Googlebot-Video",
        "operator": "Google",
        "expected_user_agent_substring": "Googlebot-Video"
       }
      ]
     }
    ],
    "claim_check": {
     "claim": "Googlebot",
     "consistent_with_the_ranges": true,
     "reading": "the address is inside a prefix published for the crawler it claims to be; the user-agent is still a claim, but it is a consistent one"
    }
   }
  ],
  "checked_against": {
   "sources": 15,
   "sources_ok": 15,
   "ipv4_prefixes": 1984,
   "ipv6_prefixes": 1062,
   "mirrored_at": "2026-09-02T02:40:37+00:00",
   "endpoint": "https://www.pathwren.workers.dev/ip-ranges/all.json",
   "refresh": "every 6 hours; each operator list is fetched, hashed and compared with the previous fetch"
  },
  "means": "A published prefix is the operator's network, not a signature: presence means the address is inside a range the operator publishes for that crawler, and you should still check the user-agent. ABSENCE PROVES NOTHING — most indexed crawlers publish no ranges at all, and several document reverse DNS instead. Call verification_methods before concluding anything from a miss.",
  "source": "https://www.pathwren.workers.dev/mcp/netcheck"
 },
 "answered_by": {
  "note": "The MCP tool itself answered this. One implementation, two doors — this endpoint holds no copy of it.",
  "server": "crawler-ip-verifier",
  "endpoint": "https://www.pathwren.workers.dev/mcp/netcheck",
  "tool": "verify_batch",
  "protocol": "MCP streamable-http, JSON-RPC 2.0 tools/call"
 },
 "caveats": [
  "A published prefix is the operator's network, not a signature: presence is consistent with the claim, absence proves nothing at all. Of the crawlers in this index only a minority publish ranges; several document reverse DNS instead, and the rest publish no verification method.",
  "No DNS lookup is performed here and no request leaves this host. Reverse-DNS verification is handed back as the exact command to run, never as a result — ask /tools/verification-methods which case a crawler is in."
 ],
 "docs": "https://www.pathwren.workers.dev/tools/verify-crawler.html?s=client-dossiers",
 "catalogue": "https://www.pathwren.workers.dev/tools/index.json?s=client-dossiers",
 "more": {
  "who actually crawls this host": "https://www.pathwren.workers.dev/bot/index.html?s=client-dossiers",
  "every named client as one file": "https://www.pathwren.workers.dev/data/observed-clients.json?s=client-dossiers"
 },
 "auth": "none — no account, no key, no handshake. CORS open, cacheable, CC0-1.0.",
 "license": "CC0-1.0",
 "independent": true
}
