GPTBot、OAI-SearchBot 与 ChatGPT-User:该拦截哪一个
GPTBot、OAI-SearchBot 与 ChatGPT-User 对比:OpenAI 的每个 bot 分别做什么,拦截各自的代价,以及针对它们 18、39 和 230 个前缀的真实 IP 核验。

2026-10-06,OpenAI 的 IP 段文件为 GPTBot 列出 18 个前缀,为 OAI-SearchBot 列出 39 个,为 ChatGPT-User 列出 230 个。OpenAI 还记录了第四个 bot,即 OAI-AdsBot,但它只访问作为 ChatGPT 广告提交的页面,因此上述三个才是大多数网站必须做出决定的。把它们当作一个叫"OpenAI"的整体来处理的规则,要么交出了您本想保留的训练权利,要么意外地让您从 ChatGPT 搜索中消失。
下文用 OpenAI 自己的原话说明每个 bot 做什么、拦截各自的代价、最常见策略对应的 robots.txt 写法,以及如何核验一个自称是其中之一的请求确实来自 OpenAI。我们从每个 IP 段文件中各查询了一个 IP,外加一个假冒者,让您在真实的 API 输出中看到差别。这项核验背后的通用方法见我们的指南:通过 IP、反向 DNS 和 Web Bot Auth 验证 AI 爬虫。

GPTBot、OAI-SearchBot 与 ChatGPT-User:各自做什么
GPTBot 用于训练,OAI-SearchBot 用于搜索,ChatGPT-User 用于响应某个人的实时请求。这就是全部的分工,OpenAI 的爬虫文档也直接写明:"每项设置都相互独立。"("Each setting is independent of the others.")下面把三者并列比较,内容引自该页面以及我们在 2026-10-06 获取的 IP 段文件。
| GPTBot | OAI-SearchBot | ChatGPT-User | |
|---|---|---|---|
| 职责(OpenAI 原话) | “用于抓取可能用于训练我们生成式 AI 基础模型的内容” | “用于在 ChatGPT 的搜索功能中把网站展示在搜索结果里” | “用于 ChatGPT 和 Custom GPT 中的某些用户操作” |
| 触发方式 | 自动抓取 | 自动抓取 | 用户的提问或 GPT Action |
| robots.txt | 据 OpenAI 称会遵守。禁止它“表示网站的内容不应被用于训练” | 据 OpenAI 称会遵守。退出的网站“不会出现在 ChatGPT 搜索答案中” | “robots.txt 规则可能不适用” |
| 当前 User-Agent 标记 | GPTBot/1.4 | OAI-SearchBot/1.4 | ChatGPT-User/1.0 |
| IP 段文件 | openai.com/gptbot.json | openai.com/searchbot.json | openai.com/chatgpt-user.json |
| 文件创建时间 | 2026-09-22 | 2026-01-02 | 2026-09-25 |
| 前缀数量(IPv4 / IPv6) | 18 / 0 | 39 / 0 | 230 / 0 |
以下是 2026-10-06 OpenAI 页面上显示的完整 User-Agent 字符串:
GPTBot: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot
OAI-SearchBot: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot
ChatGPT-User: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
OpenAI 把 GPTBot 和 OAI-SearchBot 的字符串标注为示例,并注明"版本号可能会变化";ChatGPT-User 的字符串则作为完整字符串列出。OAI-SearchBot 的字符串开头看起来像 Mac 上的桌面版 Chrome,因此请匹配标记(GPTBot、OAI-SearchBot、ChatGPT-User),而不是整个字符串。有一个细节有助于日志分析:OpenAI 表示,GPTBot 或 OAI-SearchBot 抓取您的 robots.txt 时,可能会在 User-Agent 中加上 robots.txt 标记,因此即使您的日志不记录路径,也能区分这些请求。
OpenAI 的页面还列出了第四个 bot,OAI-AdsBot。它"用于验证作为 ChatGPT 广告提交的网页的安全性",OpenAI 还表示它"也可能使用落地页的内容来判断何时向用户展示该广告最相关"。它只访问作为广告提交的页面,OpenAI 表示它收集的数据不会用于训练其基础模型。它的标记是 OAI-AdsBot/1.0,其 IP 段文件 openai.com/adsbot.json 创建于 2026-05-12,我们获取时列出了 2 个 IPv4 前缀。OpenAI 没有把 OAI-AdsBot 列为 robots.txt 标记:该页面只把 OAI-SearchBot 和 GPTBot 列为 robots.txt 标记。
ChatGPT-User 与 GPTBot:为什么用户触发的抓取不一样
ChatGPT-User 与 GPTBot 的不同在于,决定它何时访问的是一个人,而不是抓取计划。OpenAI 的页面写道:"ChatGPT-User 不会被用于自动抓取网页。由于这些操作由用户发起,robots.txt 规则可能不适用。"
同一条目中还有两句话对策略很重要。ChatGPT-User"不用于决定内容是否可以出现在搜索中",OpenAI 让网站所有者改用 OAI-SearchBot:"请在 robots.txt 中使用 OAI-SearchBot 来管理搜索退出和自动抓取。"
因此,针对 ChatGPT-User 的 Disallow 行充其量只是一个 OpenAI 表示可能不会遵守的请求。如果您确实需要阻止用户触发的抓取,就必须在防火墙或应用层按 IP 进行。我们查找过关于这段措辞何时引入的带日期变更日志,但没有找到:该页面链接了一个用于更新的 RSS 源,我们查看时它是空的。所以我们只引用当前文本,不对它何时变更做任何断言。
ChatGPT-User 并不是 ChatGPT 访问网站的唯一途径。OpenAI 关于将 ChatGPT Work 的云端浏览器加入允许列表的帮助文章(URL 中仍写着 "chatgpt-agent",Akamai 也仍把它归在 "ChatGPT Agent" 这个 bot 名下)表示,云端浏览器"使用 Web Bot Auth 对出站 HTTP 请求进行签名"。每个请求都带有 Signature 和 Signature-Input 头,以及一个值为 "https://chatgpt.com" 的 Signature-Agent 头,您可以依据 RFC 9421,使用 chatgpt.com/.well-known/http-message-signatures-directory 中的密钥对其进行验证。这类流量通过签名识别,而不是通过 IP 段文件。我们核心指南中的 Web Bot Auth 部分介绍了签名校验的原理。
GPTBot、OAI-SearchBot 和 ChatGPT-User 的 IP 段
OpenAI 在 https://openai.com/gptbot.json、https://openai.com/searchbot.json 和 https://openai.com/chatgpt-user.json 公布这三个 bot 的 IP 段。截至 2026-10-06,它们分别列出 18、39 和 230 个 IPv4 前缀,没有 IPv6。每个 IP 段文件都是一个小型 JSON 文档,包含 creationTime 和一个 prefixes 列表。下面是 GPTBot 文件的开头,以及一行汇总三个文件的方法:
curl -s https://openai.com/gptbot.json | head -c 120
# {
# "creationTime": "2026-09-22T02:00:07.000000",
# "prefixes": [
# {
# "ipv4Prefix": "132.196.86.0/24"
for f in gptbot searchbot chatgpt-user; do
curl -s https://openai.com/$f.json | jq -c '[.creationTime, (.prefixes | length), .prefixes[0]]'
done
# ["2026-09-22T02:00:07.000000",18,{"ipv4Prefix":"132.196.86.0/24"}]
# ["2026-01-02T11:00:00.000000",39,{"ipv4Prefix":"104.210.140.128/28"}]
# ["2026-09-25T18:04:57.257335",230,{"ipv4Prefix":"104.208.184.192/28"}]
在我们获取的那一天,有三点值得注意:
- 三个 IP 段文件都只有 IPv4。 没有一个包含
ipv6Prefix条目。只解析ipv4Prefix的代码目前可以工作,但请同时读取两个键,因为文件结构允许 IPv6。 - 结构差异很大。 GPTBot 有 18 个前缀,大多是
/25。ChatGPT-User 是 229 个只有 16 个地址的小型/28块,外加一个大型/17,即9.129.0.0/17。手工维护的 ChatGPT-User 允许列表条目最多,也最容易出错。 - 我们抽样的三个 OpenAI IP(每个文件一个)都位于微软的网络上(AS8075)。这正是您不能把该 ASN 加入允许列表的原因:同一个网络承载着所有其他 Azure 客户,包括任何租用服务器来冒充 GPTBot 的人。
复制下来的列表会过时。OpenAI 会更新这些 IP 段文件,三个文件中有两个的 creationTime 落在我们获取前的两周内,因此从博客文章(包括本文)中粘贴的列表,在下一次文件变化时就过时了。请获取文件、缓存它并定期刷新。不要把 IP 段粘贴到配置文件中。前缀匹配本身,包括如何按 bot 将 IP 与公布的 CIDR 段进行匹配,在核心指南中有介绍;本文只讨论 OpenAI 的三个 bot。
要不要拦截 GPTBot?拦截每个 bot 的代价
如果您不希望内容被用于训练,就拦截 GPTBot;据 OpenAI 称,这不会让您在 ChatGPT 搜索中付出任何代价。拦截另外两个则有明显的代价,因此应当是有意为之的选择,而不是某条一刀切规则的副作用。
| 如果您拦截 | 您得到 | 您放弃 |
|---|---|---|
| GPTBot | 一个表示您的内容不应被用于训练的信号 | 在 ChatGPT 搜索中没有任何损失,依据 OpenAI 的“每项设置都相互独立” |
| OAI-SearchBot | ChatGPT 搜索不再自动抓取 | 在 ChatGPT 搜索答案中出现的机会。您“仍可能以导航链接的形式出现” |
| ChatGPT-User(按 IP,因为 robots.txt 可能不适用) | 用户向 ChatGPT 询问您的 URL 时不再抓取页面 | 这些用户无法从您的页面得到答案,ChatGPT 也无法替他们阅读该页面 |
如果您同时允许两个爬虫,OpenAI 还有一句话值得了解:"如果您的网站同时允许了这两个 bot,我们可能只用一次抓取的结果来满足两种用途,以避免重复抓取。"同时允许两者并不一定会让负载翻倍。
关于其他网站的做法,可以参考:Ahrefs 对约 1.4 亿个网站 robots.txt 文件的研究于 2025-05-21 发布,数据截至 2024 年 12 月,发现 GPTBot 是被拦截最多的 AI bot,占网站的 5.89%。OAI-SearchBot 被 5.54% 的网站拦截,ChatGPT-User 被 5.64% 拦截。其中大部分来自一刀切的规则:只有 0.5% 的网站明确点名了 GPTBot,ChatGPT-User 为 0.22%,OAI-SearchBot 为 0.08%。请把这些数字当作背景参考,而不是当前的比例。这些数据早于如今的 bot 说明,而且只涵盖 robots.txt,不涵盖防火墙或 IP 拦截。
5.54% 与 0.08% 之间的差距才是重点。拦截 OAI-SearchBot 的网站几乎都没有点名它。拦截来自通用规则,例如 User-agent: * 配合 Disallow: /,或者只允许特定 bot 的允许列表,这两种规则都会把搜索 bot 和训练 bot 一并拦下。
如何拦截 GPTBot 但允许 ChatGPT 搜索
要拦截 GPTBot 但允许 ChatGPT 搜索,就在 robots.txt 中禁止 GPTBot、允许 OAI-SearchBot,标记的写法要与 OpenAI 完全一致:
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: *
Allow: /
这里没有 ChatGPT-User 组,因为 OpenAI 表示 robots.txt 对它"可能不适用"。OpenAI 还表示,搜索结果可能需要大约 24 小时才能反映 robots.txt 的变更。
robots.txt 只是 OpenAI 要求的一半。在 OAI-SearchBot 条目下,其页面建议"在网站的 robots.txt 文件中允许 OAI-SearchBot,并允许来自我们公布的 IP 段的请求"。IP 这一半很容易在不知不觉中被破坏。我们抽样的 OAI-SearchBot 地址是一个微软 Azure IP,我们的 API 将其标记为 datacenter_ip,因此一条拦截或质询数据中心或 Azure 流量的 WAF 规则,就可能把 OAI-SearchBot 挡在外面,即使 robots.txt 写着 Allow,也会让您从 ChatGPT 搜索中消失。如果您运行着这样的规则,请把 searchbot.json 中的前缀从中豁免。
请检查服务器实际返回的文件,而不是代码仓库里的那个。CDN 可能会在返回途中修改它。例如,Cloudflare 的托管 robots.txt"会把我们的托管 robots.txt 添加到您现有 robots.txt 的前面"。它的规则禁止了 GPTBot,但没有提到 OAI-SearchBot 或 ChatGPT-User,所以单独使用时,它产生的就是与上述文件相同的"拦截训练、允许搜索"策略。任何此类设置都会加入不是您写的规则,所以请测试实际返回的文件:
import urllib.robotparser
p = urllib.robotparser.RobotFileParser("https://your-site.com/robots.txt")
p.read()
for bot in ["GPTBot", "OAI-SearchBot", "ChatGPT-User"]:
print(bot, p.can_fetch(bot, "/blog/"))
针对上面的文件运行时,Python 3.9 的解析器输出了 GPTBot False、OAI-SearchBot True 和 ChatGPT-User True。如果 OAI-SearchBot 返回 False,说明上游有东西在拦截 ChatGPT 搜索。
robots.txt 与 IP 拦截:robots.txt 规则是请求,不是拦截
robots.txt 规则告诉诚实的爬虫您希望怎样,但只有在请求到达处进行 IP 核验,才能真正挡住 bot。OpenAI 的真实 bot 会读取 robots.txt。在 User-Agent 中写上 GPTBot 或 ChatGPT-User 的抓取程序会无视它,而冒用这个名字只需要一个参数:curl -A "ChatGPT-User/1.0" https://your-site.com/ 带着与真实 bot 相同的标记。
User-Agent 无法告诉您哪个是真的,robots.txt 也不能。如果您的防火墙或 CDN 在速率限制或 bot 质询上给 OpenAI 的 bot 开了绿灯,那么这个绿灯的可靠程度取决于您对请求方身份的核验。其他所有类型的 bot 也是如此;我们关于哪些 IP 信号能识别哪些 bot的概述梳理了每种信号能核验什么。
拦截必须在请求到达处执行,并且需要同时具备两个事实(将这一点应用于所有 AI 爬虫而不仅是 OpenAI 爬虫的 nginx 和 Express 策略,见我们的指南在验证 IP 之后拦截 AI 爬虫):
- 声明: User-Agent 中写的是哪个 OpenAI 标记。
- 证明: 连接 IP 是否位于同一个 bot 的 IP 段文件中。
有声明却没有证明的请求,并未被验证为 OpenAI:对它进行质询或速率限制,而不是把它当作攻击,因为核心文章解释了为什么不在公布 IP 段内的 IP 只能说明无法确定,而不能证明是假冒。请把每个标记绑定到它自己的 IP 段文件,因为 ChatGPT-User 的 IP 并不能证明一个 GPTBot 声明。反向 DNS 在这里帮不上忙:我们对每个文件中的一个 IP 运行了 dig -x,三个都从微软的 Azure DNS 返回 NXDOMAIN,因此没有可供正向确认的主机名。对 OpenAI 来说,有效的核验方式是 IP 段文件。
如何核验请求确实来自 OpenAI:三个真实 IP 和一个假冒者
当请求的 IP 位于其 User-Agent 所声明 bot 的 IP 段文件中时,该请求就来自 OpenAI。对于文件内的 IP,我们的 API 返回 verified: true 和该 bot 的名字;对于不在我们所核验任何爬虫数据源中的 IP,则返回 verified: false。2026-10-06,我们查询了每个 OpenAI IP 段文件中第一个前缀的第一个地址,外加一台 DigitalOcean 服务器。结果会随着 IP 段的变化而变化。
| IP | 来源文件 | threat.crawler | 网络和城市 | 评分,处置 |
|---|---|---|---|---|
| 132.196.86.0 | gptbot.json | verified: true, name: GPTBot | 微软 AS8075,美国得梅因 | 0,allow |
| 104.210.140.128 | searchbot.json | verified: true, name: OAISearchBot | 微软 AS8075,美国圣安东尼奥 | 0,allow |
| 104.208.184.192 | chatgpt-user.json | verified: true, name: ChatGPTUser | 微软 AS8075,美国博伊德顿 | 0,allow |
| 104.248.50.21 | 无 | verified: false, name: none | DigitalOcean AS14061,美国北伯根 | 15,allow |
请注意,API 中的爬虫名字去掉了连字符:是 OAISearchBot 和 ChatGPTUser,而不是 OAI-SearchBot 和 ChatGPT-User。
三个 OpenAI 地址返回的都是 operator: "OpenAI"、category: "ai" 和 verification_method: "ip_range_list"。现在来看追踪示例。设想一行日志(仅作说明,并非来自我们的流量):一个 User-Agent 为 ChatGPT-User/1.0、来自 104.248.50.21 的请求。下面是该 IP 与一个真实 ChatGPT-User 地址的对比,摘自实时响应并作了删减:
[
{
"ip": "104.208.184.192",
"asn": { "asn": 8075, "org": "MICROSOFT-CORP-MSN-AS-BLOCK - Microsoft Corporation", "asn_type": "hosting" },
"detection": { "is_hosting": true, "is_vpn": false, "is_proxy": false },
"threat": {
"is_crawler": true,
"crawler": {
"verified": true,
"name": "ChatGPTUser",
"operator": "OpenAI",
"category": "ai",
"verification_method": "ip_range_list"
}
},
"scoring": {
"fraud_score": 0,
"recommended_action": "allow",
"detection_methods": ["datacenter_ip", "no_ptr_datacenter", "verified_crawler"]
}
},
{
"ip": "104.248.50.21",
"asn": { "asn": 14061, "org": "DIGITALOCEAN-ASN - DigitalOcean, LLC", "asn_type": "hosting" },
"detection": { "is_hosting": true, "is_vpn": false, "is_proxy": false },
"threat": {
"is_crawler": false,
"crawler": {
"verified": false,
"name": "none",
"operator": "none",
"category": "none",
"verification_method": "none"
}
},
"scoring": {
"fraud_score": 15,
"recommended_action": "allow",
"detection_methods": ["datacenter_ip", "no_ptr_datacenter"]
}
}
]
分三步来解读:
- 查询。 这个 DigitalOcean IP 不在我们核验的任何爬虫数据源中,因此
threat.crawler.verified为false,name为"none"。它的评分为 15,处置为allow,因为数据中心 IP 本身并不代表恶意。 - 比对。 API 只接收 IP,所以它从未看到 ChatGPT-User 这个声明;响应中的
crawler.spoofed字段(上文已删去)是一个始终为 false 的占位字段,因此它无法告诉您请求是诚实的。两个事实都掌握在您的代码手中:请求声称自己是某个 OpenAI 标记,而经过验证的身份是"none"。这种不一致就是冒充。 - 对照。
104.208.184.192在chatgpt-user.json中,所以返回verified: true、name: "ChatGPTUser",并且verified_crawler把它的评分拉到 0。
比对只需要几行代码。映射表把每个 User-Agent 标记转换为 API 中不带连字符的名字:
const OPENAI_BOTS = { "GPTBot": "GPTBot", "OAI-SearchBot": "OAISearchBot", "ChatGPT-User": "ChatGPTUser" };
const ua = req.headers["user-agent"] ?? "";
const claimed = Object.keys(OPENAI_BOTS).find((token) => ua.includes(token));
if (claimed) {
const res = await fetch(`https://api.geoiphub.com/v1/lookup/${clientIp}`, {
headers: { "x-api-key": process.env.GEOIPHUB_KEY },
});
const { threat } = await res.json();
const isThatBot = threat.crawler.verified && threat.crawler.name === OPENAI_BOTS[claimed];
if (!isThatBot) {
// Claims an OpenAI bot, but the IP isn't in that bot's file: challenge or rate-limit it.
}
}
如果想在没有密钥的情况下试用,可以运行 curl https://api.geoiphub.com/v1/lookup/104.208.184.192(匿名每分钟 30 次查询),或者把您日志中的 IP 粘贴到免费 IP 查询工具中。对于"未验证"类别中的 IPv6 来源,请按前缀进行速率限制,方法见我们的指南按 /64 前缀对 IPv6 进行速率限制和拦截。
这项核验的不足之处
这项核验有三个局限:它不覆盖 OAI-AdsBot 和 ChatGPT 带签名的云端浏览器流量,它看不到您的请求头,而且一个新前缀可能需要最多 2 天才能通过我们完成验证。此外,在我们的假冒者样本上,有一个输出字段是错误的。
- 我们验证 OpenAI 四个 bot 中的三个。 GeoIPHub 的爬虫验证核验来自 10 家运营方的 19 个官方 IP 段数据源,包括 OpenAI 的 GPTBot、ChatGPT-User 和 OAI-SearchBot 文件,以及 Anthropic 和 Perplexity 为 ClaudeBot 和 PerplexityBot 发布的文件。OAI-AdsBot 不在其中,请使用 OpenAI 自己的方法来核验它。
- 我们不验证签名。 ChatGPT Work 的云端浏览器通过其 Web Bot Auth 签名来识别,我们的 IP 段数据源都不覆盖这一点。请依据 OpenAI 的密钥目录自行验证;OpenAI 的文章表示 Cloudflare、Akamai 和 HUMAN 会自动验证它。
- API 看到的是 IP,而不是您的请求头。 它能告诉您某个地址属于 ChatGPT-User。把这一点与请求所声明的 User-Agent 对应起来,是您的代码的职责,如上文所示。
- 数据源可能滞后最多 2 天。 我们每天重新获取爬虫 IP 段文件,并每天重建查询数据库,而 OpenAI 三个 IP 段文件中有两个是在我们获取前两周内创建的。一个全新的前缀可能要过几天才能通过我们完成验证,因此不一致应当作为质询的理由,而不是直接拦截的理由。
no_ptr_datacenter在这里是准确的,但在我们的假冒者样本上是错的。 它在三个 OpenAI IP 上都触发了,dig -x也确认它们没有反向 DNS。但104.248.50.21确实有一条有效的 PTR 记录,而我们的记录中没有。这与我们在通过 IP 验证 Googlebot 并识别假冒者时发现的缺口相同,已作为后端缺陷记录在案。爬虫判定并不依赖于它。
同样的"声明与证明"核验在结账环节也很重要,因为自动化买家可以随意声称自己是任何 bot。相应的做法见如何在结账时按 IP 应对 AI 购物代理。
先从您实际返回的 robots.txt 开始:运行上面那段简短的 Python 检查,确保 OAI-SearchBot 显示为 True,除非您本意并非如此。然后从日志中取出一周内声称是 GPTBot、OAI-SearchBot 或 ChatGPT-User 的请求,把它们的 IP 与三个 IP 段文件进行比对。不匹配的请求并未被验证为 OpenAI:请对它们进行质询或速率限制。
常见问题
ChatGPT-User 和 GPTBot 是一回事吗?
不是。GPTBot 按自己的计划抓取,收集可能用于训练 OpenAI 模型的内容。ChatGPT-User 只在使用 ChatGPT 或 Custom GPT 的人触发时才访问页面,OpenAI 表示它不会被用来自动抓取网页。它们还各自发布独立的 IP 段文件:gptbot.json 和 chatgpt-user.json。
可以用 robots.txt 拦截 ChatGPT-User 吗?
不可靠。OpenAI 表示 ChatGPT-User 的抓取由用户发起,因此“robots.txt 规则可能不适用”。OpenAI 还表示,ChatGPT-User 不用于决定内容是否出现在 ChatGPT 搜索中,决定这一点的是 OAI-SearchBot。如果您需要阻止用户触发的抓取,请在防火墙或应用层按 IP 拦截,使用 openai.com/chatgpt-user.json 中的 IP 段。
什么是 OAI-SearchBot?
OAI-SearchBot 是 OpenAI 的搜索爬虫。OpenAI 表示它“用于在 ChatGPT 的搜索功能中把网站展示在搜索结果里”。它的 User-Agent 在一个看起来像桌面版 Chrome 的字符串中带有 OAI-SearchBot/1.4 标记,其 IP 段位于 openai.com/searchbot.json,2026-10-06 时列出了 39 个 IPv4 前缀。OpenAI 建议在 robots.txt 中允许它,并允许来自其公布 IP 段的请求。
OAI-SearchBot 遵守 robots.txt 吗?
遵守。OpenAI 将 OAI-SearchBot 和 GPTBot 列为其 robots.txt 标记,并表示退出 OAI-SearchBot 的网站不会出现在 ChatGPT 搜索答案中,但仍可能以导航链接的形式出现。
robots.txt 的修改需要多久才能在 ChatGPT 搜索中生效?
据 OpenAI 称,大约 24 小时。OpenAI 表示:“从网站更新 robots.txt 起,我们的系统可能需要约 24 小时才能完成调整。”
GPTBot 的 IP 段在哪里?
在 https://openai.com/gptbot.json。我们在 2026-10-06 获取的副本创建于 2026-09-22,列出了 18 个 IPv4 前缀,没有 IPv6。OAI-SearchBot 的 IP 段在 openai.com/searchbot.json,ChatGPT-User 的在 openai.com/chatgpt-user.json。由于这些 IP 段会变化,请定期获取文件,而不是复制其中的 IP 段。
为什么 GPTBot 来自微软的 IP?
在我们的样本中确实如此:我们查询的 GPTBot 地址,以及 OAI-SearchBot 和 ChatGPT-User 地址,都位于微软的网络 AS8075 上。OpenAI 的爬虫页面没有说明它从哪个网络抓取,所以我们只报告样本显示的情况。由于其他微软云客户也共用这个 ASN,仅凭这一点证明不了任何事。请改为将 IP 与 gptbot.json 进行比对。
拦截 GPTBot 会让我从 ChatGPT 中消失吗?
据 OpenAI 称,不会从 ChatGPT 搜索中消失。其文档表示每项设置相互独立,并举例说明可以允许 OAI-SearchBot 以出现在搜索结果中,同时禁止 GPTBot 以退出训练。拦截 OAI-SearchBot 才会让您从 ChatGPT 搜索答案中消失。
GeoIPHub API 背后的团队
由 GeoIPHub 团队撰写,即构建 GeoIPHub IP 情报 API 及其扫描器的团队。草稿在 AI 辅助下完成,并由团队编辑;除非标注为示例,API 示例均为针对线上 API 的真实查询。


