我们在整理自家网站的 AI 爬虫抓取数据时,本来只想统计一句「哪些 AI 在读我们」。结果按 User-Agent 数出来的第一版数字是错的——日志里自称 GPTBot 的请求,有 62%(253 次中的 157 次)不是 OpenAI 发的。
更清楚的是接下来这一步:同样两个 IP,在同一段时间里同时冒充了 GPTBot、ClaudeBot、Amazonbot 和 PerplexityBot 四家公司的爬虫。
如果你也在看自己网站的 AI 抓取数据,这篇值得花十分钟。以下全部是 2026 年 8 月 12 至 14 日 techsoga.com 的原始日志。
按 UA 数,六成是假的
OpenAI 公开了 GPTBot 的 IP 段(openai.com/gptbot.json)。拿日志里所有自称 GPTBot 的请求逐条比对:
| 请求数 | IP 数 | |
|---|---|---|
| ✅ 来自 OpenAI 官方 IP 段(74.7.x.x) | 96(38%) | 6 |
| ❌ 不在官方段内(冒充) | 157(62%) | 3 |
三个冒充 IP 中,两个占了绝大多数:136.85.57.170 与 34.12.201.211。反向 DNS 查出来都是 bc.googleusercontent.com——Google Cloud 的虚拟机。任何人花几块钱就能租一台,这跟 Google 本身没有关系。
同两个 IP,四个身份
把这两个 IP 在日志里的全部请求按 User-Agent 拆开,结果是这样的:
| 它自称是 | 136.85.57.170 | 34.12.201.211 |
|---|---|---|
| Amazonbot | 368 次 | 198 次 |
| GPTBot(OpenAI) | 99 次 | 50 次 |
| ClaudeBot(Anthropic) | 97 次 | 46 次 |
| PerplexityBot | 95 次 | 51 次 |
两台机器,轮流换上四家不同公司的身份。这不是配置错误,是有意为之。
真假爬虫抓的东西不一样
光看 IP 还需要查表。但只要看它们「抓了什么路径」,真假一眼就能分。
真的 ClaudeBot(IP 段 216.73.216.x,whois 归属 Amazon.com——Anthropic 的基础设施跑在 AWS 上),三天内在我们站上只做了两件事:
37 次 200 /robots.txt
37 次 200 /sitemap_index.xml
先读规则,再读目录。教科书式的良性爬虫行为。
而那两个冒充者抓的是这些:
51 次 /fetch
10 次 /proxy
8 次 /api/exec
6 次 /webhook
6 次 /url
6 次 /request
6 次 /redirect
这些路径跟内容毫无关系。/fetch、/proxy、/url、/redirect 是在找开放代理——能不能借你的服务器去访问别的地方;/api/exec、/webhook 是在找可被调用的执行端点。
在同一批日志的其他部分,我们还看到自称 GPTBot 的请求去抓 /.aws/credentials.bak、/service_account.json、/server/.env。
真正的 AI 爬虫不会扫你的云端密钥。 一句话判断法:看它有没有先读 robots.txt。 真爬虫几乎都会;扫描器一般直接开扫。
另一种误判:只数请求不看状态码
除了冒充,第二个容易把统计做错的地方是只数请求、不看状态码。同一批日志里:
| 爬虫 | 请求数 | 其中成功(HTTP 200) |
|---|---|---|
| CCBot | 555 | 3 |
| PerplexityBot | 153 | 5 |
| Google-Extended | 132 | 4 |
| ChatGPT-User | 446 | 15 |
CCBot 报了 555 次,真正读到东西的只有 3 次——其余全是 404,也就是在扫不存在的路径。如果你把 555 当成「CCBot 很积极地在收录我」,那就完全反了。
剔除冒充与失败之后,三天内真正读到内容的爬虫是这些:
| 爬虫 | 成功抓取(HTTP 200) |
|---|---|
| Amazonbot | 172 |
| ByteSpider(字节跳动) | 75 |
| ClaudeBot(Anthropic) | 69 |
| Googlebot | 61 |
| Applebot(Apple) | 26 |
| OAI-SearchBot(OpenAI) | 25 |
| Bingbot | 18 |
| PerplexityBot | 5 |
各家的官方 IP 列表
下面这些地址都是公开的,浏览器直接打开就能看,全部为我们实测可访问:
| 爬虫 | 官方 IP 列表 |
|---|---|
| GPTBot | openai.com/gptbot.json |
| OAI-SearchBot | openai.com/searchbot.json |
| ChatGPT-User | openai.com/chatgpt-user.json |
| PerplexityBot | perplexity.com/perplexitybot.json |
| Applebot | search.developer.apple.com/applebot.json |
| Googlebot 系列 | developers.google.com/search/apis/ipranges/googlebot.json(另有 special-crawlers.json 与 user-triggered-fetchers.json) |
| ClaudeBot | Anthropic 未公布 IP 列表 |
ClaudeBot 这个缺口只能用两个替代办法:查 IP 归属(我们看到的 216.73.216.x 属 Amazon.com,与 Anthropic 跑在 AWS 上一致),以及看行为(只读 robots.txt 与 sitemap)。两者都属于旁证,不如官方列表可靠——这一点应当如实说明,而不是假装能百分之百确认。
没有官方列表时,另一个通用办法是反向 DNS。真爬虫的 IP 通常能反查出可识别的主机名:
Applebot 17.246.19.158 → 17-246-19-158.applebot.apple.com
ByteSpider 110.249.202.67 → bytespider-110-249-202-67.crawl.bytedance.com
冒充者 136.85.57.170 → 170.57.85.136.bc.googleusercontent.com
前两个反查出来就是公司自己的域名,第三个只是一台云主机。差别一目了然。
为什么值得在意
- 你会误判自己的 GEO 进展。 以为 AI 在积极收录你,实际上大半是扫描器。做决策的依据就错了。
- 你可能因此放松警惕。 很多网站会给已知 AI 爬虫的 UA 放行、跳过限流。冒充者正是冲着这个来的——它们要的不是你的文章,是你的服务器。
- 被当成跳板的是你。 如果
/fetch或/proxy真的存在并可用,别人拿你的服务器去访问第三方,责任落在你的 IP 上。
可以做的三件事
1. 统计时只算 HTTP 200
把 404、403 全部剔除再数。这一步就能去掉大部分噪音——CCBot 那 555 会变成 3。
2. 抽查最活跃的几个 IP
不必逐条比对。把自称 AI 爬虫的请求按 IP 排序,只查排前面的五到十个,就能覆盖绝大多数流量。查两件事:在不在官方 IP 列表里?反查出来是什么主机名?
3. 看它有没有先读 robots.txt
最省事的一招。真爬虫几乎都会先取 /robots.txt 才开始抓;直接闯进来扫 /.env、/proxy 的,不用查 IP 也知道是什么。
边界说明
- 样本:单一网站(techsoga.com)2026 年 8 月 12–14 日的服务器日志。这是一个站点的观察,不是行业普查,冒充比例在别的网站上会不同。
- IP 列表会变:各家的官方 IP 段会更新,验证时应取当下版本,不要用旧的缓存结果。
- 不能反过来推断:某个 IP 不在官方列表里,也可能是名单尚未更新。我们判定为冒充,靠的是 IP 与行为两项同时不符(既不在官方段内,又在扫代理与密钥路径)。单凭一项就下结论并不稳妥。
- 我们没有伪装成任何爬虫去做测试。全部数据来自被动记录的服务器日志。
延伸阅读:44 家大马知名企业网站实测:九成对 AI 爬虫没有任何设置|什么是 llms.txt?怎么写?|GEO 效果怎么测?AI 声量份额监测入门|一次完整的 GEO 审计是怎么做的


