跳转到内容

在服务器日志中验证 AI 爬虫流量

简明回答

user-agent 可以伪造,只统计验证过的请求。Google 和百度用反向 DNS 查询验证。OpenAI、Perplexity、Anthropic 公布了 IP 列表,按 IP 段对照即可。

  • 能拿到服务器或 CDN 的原始日志,其中包含每个请求的客户端 IP 和 user-agent。
  • 有可以做 DNS 查询的 shell(host 或 dig),或者能获取 JSON 并按 CIDR 匹配 IP 的脚本。

1. Google:先反向、再正向 DNS 查询

Section titled “1. Google:先反向、再正向 DNS 查询”
终端窗口
host 66.249.66.1 # → crawl-66-249-66-1.googlebot.com
host crawl-66-249-66-1.googlebot.com # → 66.249.66.1(必须一致)

Google 按爬虫类别以 JSON 文件公布 IP 列表,分为常规爬虫、特殊用途爬虫、用户触发的抓取工具。链接在其验证说明页上。

2. OpenAI 和 Perplexity:公布的 IP 段

Section titled “2. OpenAI 和 Perplexity:公布的 IP 段”

每个文件列出若干 CIDR 前缀。请求要同时满足两点才算验证通过:user-agent 写明是该爬虫,并且 IP 落在该爬虫的某个前缀内。

终端窗口
host 123.125.66.120 # → Baiduspider-123-125-66-120.crawl.baidu.com

百度的说明只做到反向查询这一步。再按 Google 的方法补一次正向查询,几乎没有成本,还能识破伪造的 PTR 记录。

这份列表是 2019 年的,也没有机器可读的版本。IP 对不上时,应记为「未验证」,不能直接当作冒充。

  • 抽查:为每个自称的爬虫挑一个请求,手动检查一遍。
  • 在报表中区分自称的和已验证的爬虫流量。带有某爬虫 user-agent 但未通过验证的请求,是另一类流量,不应计入该爬虫。

验证本身是只读操作。如果你据此加了防火墙规则,就删除它们,改用 robots.txt 规则(为 AI 爬虫配置 robots.txt)。

  • 只相信 user-agent 字符串。
  • 永久缓存 IP 列表。这些文件带有 creationTime 并会更新,应定期刷新。
  • 按 user-agent 字符串屏蔽未验证的「Googlebot」。冒充者换个字符串就绕过了。反过来,按 IP 屏蔽真实爬虫,又可能让它们读不到你的 robots.txt。

参考来源

  1. Verify requests from Google crawlers and fetchersGoogle · official · ✓ 2026-10-25
  2. Overview of OpenAI crawlersOpenAI · official · ✓ 2026-10-25
  3. Perplexity crawlersPerplexity · official · ✓ 2026-10-25
  4. Does Anthropic crawl data from the web, and how can site owners block the crawler?Anthropic · official · ✓ 2026-10-25
  5. FAQs of BaiduspiderBaidu · official · ✓ 2026-10-27
  6. 360蜘蛛IP360 Search · official · ✓ 2026-10-27
  7. 头条搜索spider介绍Toutiao Search · official · ✓ 2026-10-27