{
  "schemaVersion": "1.0",
  "type": "public-experiment-record",
  "language": "zh-CN",
  "generatedAt": "2026-10-12",
  "publisher": {
    "id": "https://zenleak.cn/#organization",
    "name": "ZenLeak GEO 学院",
    "editorialName": "ZenLeak 编辑部",
    "contact": "geo@allintwo.cloud"
  },
  "interpretationPolicy": {
    "technicalAccessIsNotIndexing": true,
    "indexingIsNotRanking": true,
    "discoveryIsNotCitation": true,
    "missingResultIsNotZero": true
  },
  "record": {
    "id": "verified-crawler-observation-protocol-2026-09-19",
    "slug": "verified-crawler-observation-protocol-2026-09-19",
    "order": 5,
    "title": "真实爬虫来源核验协议：从 User-Agent 候选到可复核身份",
    "description": "10 月 12 日复核 10 月 5 日以来的 472 条候选：143 条通过身份核验，314 条因规则不支持保持未确认，15 条明确未通过。",
    "status": "running",
    "dateStarted": "2026-09-19",
    "dateCompleted": null,
    "datePublished": "2026-09-19",
    "dateModified": "2026-10-12",
    "nextReviewAt": "2026-10-19",
    "lastRetestedAt": "2026-10-12",
    "lastRetestArtifact": "/downloads/research/crawler-retest-2026-10-12.json",
    "executionStatus": "completed",
    "question": "如何区分真实搜索或 AI 平台爬虫、伪装 User-Agent、站内巡检和人工测试，避免把自造请求写成外部平台访问？",
    "hypothesis": "将 User-Agent 识别降级为候选信号，再使用平台公开 IP 范围或反向与正向 DNS 双重核验，可以减少身份误判；无法核验的记录应保持未确认。",
    "scope": {
      "sampleSize": 472,
      "unit": "自动程序候选事件（含已确认与未确认）",
      "target": "ZenLeak 流量数据库中未来进入核验队列的搜索与 AI 爬虫候选访问",
      "dimensions": [
        "User-Agent 候选分类",
        "官方 IP 范围",
        "正反向 DNS 一致性",
        "人工探测排除",
        "隐私脱敏",
        "核验结果可复查性"
      ]
    },
    "methods": [
      "从流量数据库读取候选访问的时间、IP、爬虫标签、路径和响应状态；User-Agent 标签只用于选择核验方法，不直接证明身份。",
      "Google、Bing 等支持域名核验的平台执行 PTR 反向查询，再对返回主机名做 A/AAAA 正向查询，只有域名后缀符合规则且原 IP 出现在正向结果中才记为 DNS 一致。",
      "OpenAI 等公布爬虫 IP 范围的平台读取官方 JSON 范围并进行 CIDR 匹配；网络错误、来源不可达或不在范围内分别记录。",
      "不支持可靠自动核验的平台保留“未确认”，不会仅凭主机名、地区或 User-Agent 升级为真实爬虫。",
      "明确排除 2026-09-19T06:08:00Z 附近由 ZenLeak 人工 User-Agent 测试产生的百度与 GPTBot 记录，不将其作为平台访问证据。",
      "公开汇总只提供平台、时间窗口、核验方法和计数；默认遮蔽完整 IP，不公开可识别的原始访问明细。"
    ],
    "questions": [],
    "metrics": [
      {
        "id": "candidate-events",
        "label": "待核验候选事件",
        "value": 472,
        "total": 472,
        "display": "472",
        "definition": "排除站内巡检和已知人工探测后，由 User-Agent 分类产生的候选访问数。"
      },
      {
        "id": "verified-events",
        "label": "通过身份核验",
        "value": 143,
        "total": 472,
        "display": "143 / 472",
        "definition": "通过官方 IP 范围，或满足受支持平台正反向 DNS 一致性规则的候选事件数。"
      },
      {
        "id": "unresolved-events",
        "label": "未确认事件",
        "value": 314,
        "total": 472,
        "display": "314 / 472（核验规则不支持）",
        "definition": "本轮 verdict=unsupported 的事件：当前没有适用的官方 IP 范围或可靠 DNS 自动核验规则。它们保持未确认，不代表伪装、恶意或被明确否定。"
      },
      {
        "id": "not-verified-events",
        "label": "未通过身份核验",
        "value": 15,
        "total": 472,
        "display": "15 / 472",
        "definition": "本轮有适用核验规则且被规则明确判定不匹配的事件数；无规则可用的候选不计入此项。"
      },
      {
        "id": "excluded-manual-probes",
        "label": "历史已排除人工探测",
        "value": 2,
        "total": 2,
        "display": "2 条历史记录",
        "definition": "累计已知由本站手动修改 User-Agent 产生的百度和 GPTBot 测试访问；它们已排除在当日候选样本外。2026-09-27 窗口内另有 0 条人工探测排除项。"
      }
    ],
    "observations": [
      {
        "label": "当前分类边界",
        "finding": "现有流量报表按 User-Agent 标识爬虫，页面已经提示该名称不代表可信身份。",
        "evidenceLevel": "context"
      },
      {
        "label": "已知污染记录",
        "finding": "2026-09-19T06:08:00Z 附近的百度与 GPTBot 访问来自本站人工请求，已在协议中列为排除项。",
        "evidenceLevel": "measured"
      },
      {
        "label": "真实平台访问",
        "finding": "截至 2026-09-19 的首次协议记录，尚无按本协议核验的访问；2026-09-27 的新增复核结果见下方当日观察。",
        "evidenceLevel": "context"
      },
      {
        "label": "2026-09-27 当日身份核验",
        "finding": "只读读取流量库中 2026-09-27 00:00 至 23:04（北京时间）的 99 条候选事件，并按官方 IP 范围或正反向 DNS 一致性核验。5 条通过（Google 1、Bing 4），94 条为 unsupported、未确认，0 条被规则明确判定 not-verified；已核验样本响应均为 HTTP 200。",
        "evidenceLevel": "measured"
      },
      {
        "label": "当日未确认候选构成",
        "finding": "未确认的 94 条包含 Ahrefs 80、其他自动程序 9、360 4、Yandex 1。当前协议没有为这些类别配置可用的官方自动核验方法；不能把 User-Agent 单独当作真实身份或伪装证据。",
        "evidenceLevel": "measured"
      },
      {
        "label": "当日脱敏样本",
        "finding": "公开材料只列 5 条已核验代表事件并遮蔽 IP 末段；完整 IP 和无关访问路径不公开。该候选事件计数不等于独立爬虫数量或唯一访客数。",
        "evidenceLevel": "measured"
      },
      {
        "label": "2026-10-05 窗口身份核验",
        "finding": "只读读取 2026-09-28 00:00 至 2026-10-05 18:05（北京时间）的 682 条候选。64 条通过官方 IP 范围或正反向 DNS 核验（Google 5、Bing 43、百度 7、OpenAI GPTBot 9），605 条因规则不支持保持未确认，13 条在有适用规则时明确未通过。",
        "evidenceLevel": "measured"
      },
      {
        "label": "目标教程命中情况",
        "finding": "同一窗口内两个固定教程合计出现 16 次自动程序访问，均为 HTTP 200；日志标签为其他自动程序 13、Ahrefs 2、Yandex 1，没有目标页访问被现有规则核验为百度或 Google。",
        "evidenceLevel": "measured"
      },
      {
        "label": "2026-10-12 窗口身份核验",
        "finding": "只读读取 2026-10-05 18:05:31 至 2026-10-12 15:02:30（北京时间）的 472 条候选。143 条通过官方 IP 范围或正反向 DNS 核验（Bing 78、ChatGPT User 1、Google 6、OpenAI GPTBot 57、百度 1），314 条因规则不支持保持未确认，15 条在有适用规则时明确未通过。",
        "evidenceLevel": "measured"
      },
      {
        "label": "2026-10-12 目标教程命中情况",
        "finding": "两个固定教程合计出现 15 次自动程序访问，均为 HTTP 200；其中 ChatGPT User 1、Bing 5、Google 1、OpenAI GPTBot 1 按官方规则核验通过，Ahrefs 2、Yandex 1 和其他自动程序 4 保持未确认。目标页有 1 条 Google 核验记录，但这不等于收录或 AI 答案引用。",
        "evidenceLevel": "measured"
      }
    ],
    "artifacts": [
      {
        "label": "9 月 27 日脱敏爬虫身份核验记录",
        "href": "/downloads/research/crawler-retest-2026-09-27.json"
      },
      {
        "label": "10 月 5 日窗口脱敏爬虫身份核验记录",
        "href": "/downloads/research/crawler-retest-2026-10-05.json"
      },
      {
        "label": "10 月 12 日窗口脱敏爬虫身份核验记录",
        "href": "/downloads/research/crawler-retest-2026-10-12.json"
      }
    ],
    "limitations": [
      "并非所有平台都公布 IP 范围或稳定的 DNS 核验规则，未确认不等于伪造。",
      "DNS 与公开 IP 范围会变化，核验结果只对应查询当时，不能完整还原历史网络归属。",
      "代理、共享网络、用户触发抓取和平台基础设施调整可能使身份判定更复杂。",
      "现有数据库保存爬虫标签而非完整原始 User-Agent，历史核验只能使用当时已经保存的字段。",
      "为保护访问者隐私，公开结果不会展示完整 IP，外部读者无法独立重放所有网络查询。"
    ],
    "conclusions": [
      "2026-09-28 至 2026-10-05 窗口内确认 64 条访问身份，其中 Google 5、Bing 43、百度 7、OpenAI GPTBot 9，均只证明请求身份和 HTTP 响应，不代表收录或 AI 引用。",
      "605 条候选因缺少适用自动核验规则继续保持未确认，13 条在有适用规则时明确未通过；没有把 User-Agent 单独当作身份结论。",
      "两个固定教程在 2026-09-28 至 2026-10-05 窗口内有自动程序访问，但没有目标页被确认是百度或 Google 抓取。",
      "2026-10-05 18:05:31 至 2026-10-12 15:02:30 窗口内确认 143 条访问身份，其中 Google 6、Bing 78、百度 1、OpenAI GPTBot 57、ChatGPT User 1；两个固定教程命中 1 条 Google 和 5 条 Bing 核验记录。身份核验只说明请求来源达到协议要求，不代表搜索收录、排名或 AI 引用；下一次计划复核为 2026-10-19。"
    ],
    "relatedTutorials": [
      "ai-crawler-governance",
      "crawl-render-index",
      "indexing-vs-ai-citation"
    ],
    "tags": [
      "爬虫核验",
      "User-Agent",
      "DNS",
      "IP 范围",
      "数据边界"
    ],
    "statusLabel": "进行中",
    "representations": {
      "pagePath": "/experiments/records/verified-crawler-observation-protocol-2026-09-19/",
      "pageUrl": "https://zenleak.cn/experiments/records/verified-crawler-observation-protocol-2026-09-19/",
      "jsonPath": "/experiments/records/verified-crawler-observation-protocol-2026-09-19.json",
      "jsonUrl": "https://zenleak.cn/experiments/records/verified-crawler-observation-protocol-2026-09-19.json",
      "markdownPath": "/experiments/records/verified-crawler-observation-protocol-2026-09-19.md",
      "markdownUrl": "https://zenleak.cn/experiments/records/verified-crawler-observation-protocol-2026-09-19.md"
    }
  }
}