انتقل إلى المحتوى
أمن الشبكات

GPTBot مقابل OAI-SearchBot مقابل ChatGPT-User: أيها تحظر

GPTBot مقابل OAI-SearchBot مقابل ChatGPT-User: ماذا يفعل كل بوت من بوتات OpenAI، وكلفة حظر كل منها، وفحص IP حقيقي مقابل بادئاتها الـ 18 و39 و230.

بقلمفريق GeoIPHubتاريخ النشرمدة القراءةقراءة في 15 دقيقة
ثلاثة أشكال زواحف تجريدية تترك آثار ضوء مختلفة، تمثّل GPTBot وOAI-SearchBot وChatGPT-User

في 2026-10-06 أدرجت ملفات النطاقات لدى OpenAI 18 بادئة لـ GPTBot و39 لـ OAI-SearchBot و230 لـ ChatGPT-User. وتوثّق OpenAI بوتًا رابعًا، OAI-AdsBot، لكنه يزور فقط الصفحات المقدَّمة كإعلانات في ChatGPT، ولذلك فالثلاثة أعلاه هي التي يحتاج معظم المواقع إلى اتخاذ قرار بشأنها. وأي قاعدة تعاملها كشيء واحد اسمه "OpenAI" إما تتنازل عن حقوق تدريب كنت تنوي الاحتفاظ بها أو تسقطك من بحث ChatGPT عن طريق الخطأ.

نعرض أدناه ما يفعله كل بوت بكلمات OpenAI نفسها، وكلفة حظر كل منها، وأسطر robots.txt لأشيع سياسة، وكيف تتحقق من أن طلبًا يدّعي أنه أحد هذه البوتات جاء فعلًا من OpenAI. استعلمنا عن عنوان IP واحد من كل ملف نطاقات، وعن منتحل واحد، لترى الفرق في مخرجات حقيقية من الواجهة البرمجية. أما الطريقة العامة وراء هذا الفحص فموجودة في دليلنا عن التحقق من زواحف الذكاء الاصطناعي عبر IP وrDNS وWeb Bot Auth.

ثلاثة أشرطة من خلايا متوهجة بأطوال مختلفة، تمثّل بادئات IP المنشورة لبوتات OpenAI الثلاثة
ثلاثة بوتات وثلاثة ملفات نطاقات وثلاث وظائف مختلفة.

GPTBot مقابل OAI-SearchBot مقابل ChatGPT-User: ماذا يفعل كل منها

GPTBot للتدريب، وOAI-SearchBot للبحث، وChatGPT-User لطلب شخص مباشر. هذا هو التقسيم كله، وتنص عليه وثائق الزواحف لدى OpenAI مباشرة: "كل إعداد مستقل عن الإعدادات الأخرى." وهذه الثلاثة جنبًا إلى جنب، مقتبسة من تلك الصفحة ومن ملفات النطاقات التي جلبناها في 2026-10-06.

GPTBotOAI-SearchBotChatGPT-User
الوظيفة (بكلمات OpenAI)"يُستخدم للزحف إلى محتوى قد يُستخدم في تدريب نماذجنا التأسيسية للذكاء الاصطناعي التوليدي""يُستخدم لإظهار المواقع في نتائج البحث ضمن ميزات البحث في ChatGPT""لإجراءات معينة للمستخدم في ChatGPT وGPTs المخصصة"
ما الذي يطلقهزحف تلقائيزحف تلقائيسؤال من مستخدم أو إجراء GPT
robots.txtيحترمه بحسب OpenAI. منعه "يشير إلى أن محتوى الموقع لا ينبغي استخدامه في التدريب"يحترمه بحسب OpenAI. المواقع المنسحبة "لن تظهر في إجابات بحث ChatGPT""قد لا تنطبق قواعد robots.txt"
رمز User-Agent حاليًاGPTBot/1.4OAI-SearchBot/1.4ChatGPT-User/1.0
ملف النطاقاتopenai.com/gptbot.jsonopenai.com/searchbot.jsonopenai.com/chatgpt-user.json
تاريخ إنشاء الملف2026-09-222026-01-022026-09-25
البادئات (IPv4 / IPv6)18 / 039 / 0230 / 0

هذه سلاسل User-Agent كاملة كما أظهرتها صفحة OpenAI في 2026-10-06:

GeoIPHub API
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 كما يبدأ Chrome لسطح المكتب على جهاز Mac، ولذلك طابِق الرمز (GPTBot أو OAI-SearchBot أو ChatGPT-User) لا السلسلة كلها. وهناك تفصيل يفيد في تحليل السجلات: حين يجلب GPTBot أو OAI-SearchBot ملف robots.txt لديك، تقول OpenAI إنهما قد يضيفان علامة robots.txt إلى User-Agent، فتستطيع التمييز بين تلك الطلبات حتى حين لا تسجّل سجلاتك المسارات.

وتدرج صفحة OpenAI أيضًا بوتًا رابعًا هو OAI-AdsBot. وهو "يُستخدم للتحقق من سلامة صفحات الويب المقدَّمة كإعلانات في ChatGPT"، وتقول OpenAI إنه "قد يستخدم أيضًا محتوى الصفحة المقصودة لتحديد الوقت الأنسب لعرض الإعلان على المستخدمين." وهو يزور فقط الصفحات المقدَّمة كإعلانات، وتقول OpenAI إن البيانات التي يجمعها لا تُستخدم في تدريب نماذجها التأسيسية. رمزه OAI-AdsBot/1.0، وملف نطاقاته openai.com/adsbot.json أُنشئ في 2026-05-12 وأدرج بادئتي IPv4 حين جلبناه. ولا تدرج OpenAI بوت OAI-AdsBot وسمًا لـ robots.txt: فالصفحة تسمّي OAI-SearchBot وGPTBot فقط بوصفهما كذلك.

ChatGPT-User مقابل GPTBot: لماذا يختلف الجلب الذي يطلقه المستخدم

يختلف ChatGPT-User عن GPTBot لأن شخصًا، لا جدول زحف، هو من يقرر متى يزور. تقول صفحة OpenAI: "لا يُستخدم ChatGPT-User في الزحف إلى الويب بطريقة تلقائية. ولأن هذه الإجراءات يبدؤها مستخدم، فقد لا تنطبق قواعد robots.txt."

وجملتان أخريان من الفقرة نفسها مهمتان للسياسة. فـ ChatGPT-User "لا يُستخدم لتحديد ما إذا كان المحتوى قد يظهر في البحث"، وتوجّه OpenAI أصحاب المواقع إلى OAI-SearchBot بدلًا منه: "يُرجى استخدام OAI-SearchBot في robots.txt لإدارة الانسحاب من البحث والزحف التلقائي."

فسطر Disallow لـ ChatGPT-User هو في أحسن الأحوال طلب تقول OpenAI إنها قد لا تحترمه. وإذا كنت بحاجة فعلًا إلى إيقاف عمليات الجلب التي يطلقها المستخدمون، فلا بد أن يحدث ذلك عند جدار الحماية أو التطبيق، بعنوان IP. بحثنا عن سجل تغييرات مؤرَّخ يبيّن متى أُدخلت هذه الصياغة ولم نجد شيئًا: تربط الصفحة بتغذية RSS للتحديثات، وكانت فارغة حين تحققنا. لذلك نقتبس النص الحالي ولا ندّعي شيئًا عن وقت تغيّره.

وليس ChatGPT-User الطريقة الوحيدة التي يصل بها ChatGPT إلى موقع. تقول مقالة المساعدة لدى OpenAI حول السماح بمتصفح ChatGPT Work السحابي (ما زال عنوان URL يقول "chatgpt-agent"، وما زالت Akamai تصنّفه تحت اسم البوت "ChatGPT Agent") إن المتصفح السحابي "يستخدم Web Bot Auth لتوقيع طلبات HTTP الصادرة". يحمل كل طلب ترويستي Signature وSignature-Input إضافة إلى ترويسة Signature-Agent مضبوطة على "https://chatgpt.com"، وتتحقق منه وفق RFC 9421 مقابل المفاتيح الموجودة في chatgpt.com/.well-known/http-message-signatures-directory. تُعرَّف تلك الحركة بتوقيعها لا بملف نطاقات. ويشرح قسم Web Bot Auth في دليلنا المحوري كيف تعمل فحوص التوقيع.

نطاقات IP لـ GPTBot وOAI-SearchBot وChatGPT-User

تنشر OpenAI نطاقات IP للبوتات الثلاثة على https://openai.com/gptbot.json وhttps://openai.com/searchbot.json وhttps://openai.com/chatgpt-user.json. وبتاريخ 2026-10-06 أدرجت 18 و39 و230 بادئة IPv4، ولا IPv6. كل ملف نطاقات هو مستند JSON صغير فيه creationTime وقائمة prefixes. وهذه بداية ملف GPTBot، وطريقة بسطر واحد لتلخيص الثلاثة:

GeoIPHub API
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"}]

ثلاثة أمور بارزة في اليوم الذي جلبناها فيه:

  • ملفات النطاقات الثلاثة كلها IPv4 فقط. لم يحتوِ أي منها على إدخال ipv6Prefix. الشيفرة التي تحلل ipv4Prefix فقط تعمل اليوم، لكن اقرأ المفتاحين معًا، فالبنية تسمح بـ IPv6.
  • الأشكال مختلفة جدًا. GPTBot هو 18 بادئة، معظمها /25. أما ChatGPT-User فهو 229 كتلة /28 صغيرة من 16 عنوانًا مع كتلة كبيرة واحدة /17، وهي 9.129.0.0/17. وقائمة السماح بـ ChatGPT-User التي تُحفظ يدويًا هي الأكثر عرضة للأخطاء بسبب كثرة إدخالاتها.
  • عناوين IP الثلاثة التابعة لـ OpenAI التي أخذنا منها عيّنة (واحد لكل ملف) تقع على شبكة Microsoft (AS8075). ولهذا بالضبط لا يمكنك السماح بحسب ASN: فالشبكة نفسها تحمل كل عملاء Azure الآخرين، بمن فيهم من يستأجر خادمًا لينتحل GPTBot.

القوائم المنسوخة تتعفّن. تحدّث OpenAI ملفات النطاقات هذه، واثنان من الثلاثة يحملان creationTime من الأسبوعين السابقين لجلبنا لها، فأي قائمة تُلصق من مقالة مدونة (بما فيها هذه) تصبح قديمة عند تغيّر أحد الملفات. اجلب الملف، وخزّنه مؤقتًا، وحدّثه وفق جدول زمني. ولا تلصق النطاقات في ملف إعدادات. أما مطابقة البادئات نفسها، ومنها كيف تطابق عنوان IP مع نطاقات CIDR المنشورة لكل بوت، فيتناولها الدليل المحوري؛ وتقتصر هذه المقالة على بوتات OpenAI الثلاثة.

هل أحظر GPTBot؟ كلفة حظر كل بوت

احظر GPTBot إن كنت لا تريد استخدام محتواك في التدريب؛ فهذا لا يكلّفك شيئًا في بحث ChatGPT بحسب OpenAI. أما حظر البوتين الآخرين فله كلفة ظاهرة، ولذلك ينبغي أن يكون اختيارًا مقصودًا لا أثرًا جانبيًا لقاعدة شاملة.

إذا حظرتتحصل علىتتخلى عن
GPTBotإشارة بأن محتواك لا ينبغي استخدامه في التدريبلا شيء في بحث ChatGPT، بحسب عبارة OpenAI "كل إعداد مستقل"
OAI-SearchBotلا زحف تلقائي لبحث ChatGPTالظهور في إجابات بحث ChatGPT. ويمكنك "الظهور كروابط تنقّل" مع ذلك
ChatGPT-User (بعنوان IP، لأن robots.txt قد لا ينطبق)لا جلب للصفحات حين يسأل المستخدمون ChatGPT عن عنوان URL الخاص بكلا يحصل أولئك المستخدمون على إجابة من صفحتك، ولا يستطيع ChatGPT قراءتها نيابة عنهم

وهناك سطر آخر من OpenAI يستحق أن تعرفه إن سمحت للزاحفين معًا: "إذا كان موقعك قد سمح بكلا البوتين، فقد نستخدم نتائج زحف واحد فقط للحالتين لتجنب الزحف المكرر." فالسماح بالاثنين لا يضاعف الحمل بالضرورة.

وللسياق في ما تفعله المواقع الأخرى: وجدت دراسة من Ahrefs لملفات robots.txt في نحو 140 مليون موقع، نُشرت في 2025-05-21 ببيانات حتى ديسمبر 2024، أن GPTBot كان أكثر بوتات الذكاء الاصطناعي حظرًا بنسبة 5.89% من المواقع. وحُظر OAI-SearchBot في 5.54% وChatGPT-User في 5.64%. ومعظم ذلك قواعد شاملة: 0.5% فقط من المواقع سمّت GPTBot صراحةً، و0.22% سمّت ChatGPT-User و0.08% سمّت OAI-SearchBot. اقرأ هذه الأرقام كسياق لا كمعدلات حالية. فالبيانات سابقة لأوصاف البوتات الحالية، وتغطي robots.txt فقط، لا الحظر عبر جدار الحماية أو IP.

والفجوة بين 5.54% و0.08% هي المغزى. فكاد لا يوجد موقع يحظر OAI-SearchBot سمّاه. جاء الحظر من قاعدة عامة، مثل User-agent: * مع Disallow: /، أو قائمة سماح لا تسمح إلا ببوتات معينة، وكلتاهما تلتقط بوت البحث مع بوت التدريب.

كيف تحظر GPTBot وتسمح ببحث ChatGPT

لحظر GPTBot والسماح ببحث ChatGPT، امنع GPTBot واسمح بـ OAI-SearchBot في robots.txt، مستخدمًا الرموز كما تكتبها OpenAI تمامًا:

GeoIPHub API
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 توصي صفحتها بـ "السماح بـ OAI-SearchBot في ملف robots.txt الخاص بموقعك والسماح بالطلبات الصادرة من نطاقات IP المنشورة لدينا". ومن السهل كسر نصف IP دون أن تلاحظ. فعنوان OAI-SearchBot الذي أخذنا منه عيّنة هو عنوان Microsoft Azure تعلّمه واجهتنا البرمجية بـ datacenter_ip، ولذلك فقاعدة WAF تحظر حركة مراكز البيانات أو Azure أو تتحداها قد تُبقي OAI-SearchBot خارج موقعك وتُسقطك من بحث ChatGPT حتى حين يقول robots.txt Allow. وإذا كنت تشغّل قاعدة كهذه، فاستثنِ منها البادئات الموجودة في searchbot.json.

افحص الملف الذي يرسله خادمك فعلًا، لا الموجود في مستودعك. فقد تغيّره شبكة توصيل المحتوى في طريق الخروج. فمثلًا يقول robots.txt المُدار من Cloudflare إنه "سيضيف robots.txt المُدار لدينا قبل ملف robots.txt الحالي لديك". وقواعده تمنع GPTBot لكنها لا تذكر OAI-SearchBot ولا ChatGPT-User، فهو بمفرده ينتج سياسة "امنع التدريب واسمح بالبحث" نفسها التي في الملف أعلاه. وأي إعداد كهذا يضيف قواعد لم تكتبها، فاختبر الملف المقدَّم:

GeoIPHub API
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 عند وصول الطلب هو وحده ما يوقف بوتًا فعلًا. بوتات OpenAI الحقيقية تقرأ robots.txt. أما كاشط يضع GPTBot أو ChatGPT-User في User-Agent الخاص به فيتجاهله، واستعارة الاسم تكلّف خيارًا واحدًا: curl -A "ChatGPT-User/1.0" https://your-site.com/ يحمل رمز البوت نفسه الذي يحمله الأصلي.

لا يستطيع User-Agent أن يخبرك أيهما الحقيقي، ولا robots.txt كذلك. وإذا كان جدار الحماية أو شبكة توصيل المحتوى لديك يمنح بوتات OpenAI إعفاءً من حدود المعدل أو تحديات البوتات، فإن هذا الإعفاء لا يساوي أكثر من فحصك لمن يطلب. وينطبق الأمر نفسه على كل نوع آخر من البوتات؛ ويبيّن موجزنا عن إشارات IP التي تحدد البوتات أي إشارة تفحص ماذا.

يجب أن يحدث الإنفاذ حيث يصل الطلب، ويحتاج إلى حقيقتين معًا (سياسة nginx وExpress التي تطبّق ذلك على كل زواحف الذكاء الاصطناعي لا زواحف OpenAI وحدها موجودة في دليلنا عن حظر زواحف الذكاء الاصطناعي بعد التحقق من IP):

  1. الادعاء: أي رمز من رموز OpenAI يسمّيه User-Agent.
  2. الإثبات: هل عنوان IP المتصل ضمن ملف نطاقات ذلك البوت نفسه.

ادعاء بلا إثبات لا يُعد موثّقًا على أنه من OpenAI: تحدَّه أو حدّد معدله بدل التعامل معه كهجوم، لأن المقالة المحورية تشرح لماذا يكون عنوان IP خارج نطاق منشور غير حاسم لا دليلًا على التزييف. اربط كل رمز بملف النطاقات الخاص به، لأن عنوان IP تابعًا لـ ChatGPT-User لا يثبت ادعاء GPTBot. ولا يفيد DNS العكسي هنا: نفّذنا dig -x على عنوان IP واحد من كل ملف فأعادت الثلاثة NXDOMAIN من DNS لـ Azure لدى Microsoft، فلا يوجد اسم مضيف لتأكيده بالاتجاه الأمامي. ملف النطاقات هو الفحص الذي ينجح مع OpenAI.

كيف تتحقق من أن طلبًا جاء فعلًا من OpenAI: ثلاثة عناوين IP حقيقية وواحد مزيّف

جاء الطلب من OpenAI حين يكون عنوان IP الخاص به ضمن ملف النطاقات للبوت الذي يسمّيه User-Agent. تعيد واجهتنا البرمجية verified: true واسم ذلك البوت لعنوان IP ضمن الملف، وverified: false لعنوان IP خارج كل تغذية زواحف نفحصها. استعلمنا عن أول عنوان في أول بادئة من كل ملف نطاقات لدى OpenAI في 2026-10-06، إضافة إلى خادم DigitalOcean. تتغير النتائج مع انتقال النطاقات.

IPمن الملفthreat.crawlerالشبكة والمدينةالدرجة، الإجراء
132.196.86.0gptbot.jsonverified: true, name: GPTBotMicrosoft AS8075، Des Moines US0, allow
104.210.140.128searchbot.jsonverified: true, name: OAISearchBotMicrosoft AS8075، San Antonio US0, allow
104.208.184.192chatgpt-user.jsonverified: true, name: ChatGPTUserMicrosoft AS8075، Boydton US0, allow
104.248.50.21لا شيءverified: false, name: noneDigitalOcean AS14061، North Bergen US15, allow

لاحظ أن أسماء الزواحف في الواجهة البرمجية تُسقط الواصلات: 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 حقيقي، مختصرين من الاستجابتين الحيتين:

GeoIPHub API
[ { "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"] } } ]

اقرأه في ثلاث خطوات:

  1. الاستعلام. عنوان DigitalOcean ليس في أي تغذية زواحف نفحصها، ولذلك تكون threat.crawler.verified هي false وname هو "none". ودرجته 15، allow، لأن عنوان IP لمركز بيانات بمفرده ليس خبيثًا.
  2. المقارنة. لا تتلقى الواجهة البرمجية سوى عنوان IP، فلم ترَ ادعاء ChatGPT-User قط، وحقل crawler.spoofed في الاستجابة (المحذوف في الاختصار أعلاه) قيمة نائبة تكون دائمًا false، فلا يمكنه أن يخبرك بأن الطلب أمين. شيفرتك تملك الحقيقتين: يدّعي الطلب رمزًا من OpenAI، والهوية الموثّقة هي "none". ذلك التعارض هو التزييف.
  3. التباين. العنوان 104.208.184.192 موجود في chatgpt-user.json، فيعود بـ verified: true وname: "ChatGPTUser"، ويخفض verified_crawler درجته إلى 0.

المقارنة بضعة أسطر. تترجم الخريطة كل رمز في User-Agent إلى اسم الواجهة البرمجية الخالي من الواصلات:

GeoIPHub 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 في سلة "غير الموثّق"، حدّد المعدل حسب البادئة، كما في دليلنا عن تحديد معدل IPv6 وحظره حسب بادئة /64.

أين يقصر هذا الفحص

للفحص ثلاثة حدود: لا يغطي OAI-AdsBot ولا حركة المتصفح السحابي الموقَّعة لـ ChatGPT، ولا يستطيع رؤية ترويسات طلبك، وقد تستغرق البادئة الجديدة حتى يومين لتُوثَّق عبرنا. كما أن أحد حقول المخرجات خاطئ في عيّنة المنتحل لدينا.

  • نتحقق من ثلاثة من بوتات OpenAI الأربعة. يفحص التحقق من الزواحف في GeoIPHub 19 تغذية نطاقات رسمية من 10 مشغّلين، منها ملفات GPTBot وChatGPT-User وOAI-SearchBot لدى OpenAI والملفات التي تنشرها Anthropic وPerplexity لـ ClaudeBot وPerplexityBot. ولا يوجد OAI-AdsBot بينها، فتحقق منه بطريقة OpenAI نفسها.
  • لا نتحقق من التواقيع. يُعرَّف المتصفح السحابي في ChatGPT Work بتوقيع Web Bot Auth، الذي لا تغطيه أي من تغذيات نطاقاتنا. تحقق منه بنفسك مقابل دليل مفاتيح OpenAI؛ وتقول مقالة OpenAI إن Cloudflare وAkamai وHUMAN تتحقق منه تلقائيًا.
  • تراقب الواجهة البرمجية عنوان IP لا ترويساتك. تستطيع أن تخبرك بأن عنوانًا ينتمي إلى ChatGPT-User. أما مطابقة ذلك مع User-Agent الذي ادعاه الطلب فمهمة شيفرتك، كما سبق.
  • قد تتأخر التغذيات حتى يومين. نعيد جلب ملفات نطاقات الزواحف يوميًا ونعيد بناء قاعدة بيانات الاستعلام يوميًا، وقد أُنشئ اثنان من ملفات OpenAI الثلاثة في الأسبوعين السابقين لجلبنا. قد لا توثَّق بادئة جديدة تمامًا عبرنا لبضعة أيام، فعدم التطابق سبب للتحدّي لا للحظر القاطع.
  • no_ptr_datacenter دقيق هنا، وخاطئ على منتحلنا. انطلق على عناوين OpenAI الثلاثة، ويؤكد dig -x أنها بلا DNS عكسي. لكن 104.248.50.21 له سجل PTR حي لا يحتويه سجلنا. وهذه هي الفجوة نفسها التي وجدناها عند التحقق من Googlebot عبر IP وكشف المزيّف، وهي مسجَّلة كخلل في الخلفية. ولا يعتمد حكم الزاحف عليه.

ويهم فحص الادعاء مقابل الإثبات نفسه عند الدفع، حيث يستطيع مشترٍ آلي أن يدّعي أي اسم بوت يشاء. انظر كيف تتعامل مع وكلاء التسوق بالذكاء الاصطناعي عند الدفع عبر IP لهذه النسخة.

ابدأ بملف robots.txt الذي يُقدَّم من خادمك: شغّل فحص Python القصير أعلاه وتأكد من أن OAI-SearchBot يقول True ما لم تقصد غير ذلك. ثم اسحب أسبوعًا من الطلبات التي تسمّي GPTBot أو OAI-SearchBot أو ChatGPT-User من سجلاتك وافحص عناوين IP الخاصة بها مقابل ملفات النطاقات الثلاثة. وما لا يتطابق منها ليس موثّقًا على أنه من OpenAI: تحدَّه أو حدّد معدله.

الأسئلة الشائعة

هل ChatGPT-User هو نفسه GPTBot؟

لا. يزحف GPTBot وفق جدوله الخاص ويجمع محتوى قد يُستخدم في تدريب نماذج OpenAI. أما ChatGPT-User فيزور صفحة فقط حين يطلق ذلك شخص يستخدم ChatGPT أو GPT مخصصًا، وتقول OpenAI إنه لا يُستخدم للزحف إلى الويب تلقائيًا. كما تنشر ملفي نطاقات IP منفصلين: gptbot.json وchatgpt-user.json.

هل يمكنني حظر ChatGPT-User عبر robots.txt؟

ليس بشكل موثوق. تقول OpenAI إن عمليات الجلب التي يجريها ChatGPT-User يبدؤها مستخدم، ولذلك "قد لا تنطبق قواعد robots.txt". وتقول أيضًا إن ChatGPT-User لا يُستخدم لتحديد ما إذا كان المحتوى يظهر في بحث ChatGPT، وإن OAI-SearchBot هو من يقوم بذلك. إذا أردت إيقاف عمليات الجلب التي يطلقها المستخدمون، فاحظرها بعنوان IP عند جدار الحماية أو التطبيق، باستخدام النطاقات الموجودة في openai.com/chatgpt-user.json.

ما هو OAI-SearchBot؟

OAI-SearchBot هو زاحف البحث لدى OpenAI. تقول OpenAI إنه "يُستخدم لإظهار المواقع في نتائج البحث ضمن ميزات البحث في ChatGPT". يحمل User-Agent الخاص به الرمز OAI-SearchBot/1.4 داخل سلسلة تشبه Chrome لسطح المكتب، وتوجد نطاقات IP الخاصة به في openai.com/searchbot.json، وقد أدرج 39 بادئة IPv4 في 2026-10-06. توصي OpenAI بالسماح به في robots.txt وبالسماح بالطلبات الصادرة من نطاقات IP المنشورة لديها.

هل يحترم OAI-SearchBot ملف robots.txt؟

نعم. تسمّي OpenAI كلًّا من OAI-SearchBot وGPTBot بوصفهما وسمين لـ robots.txt، وتقول إن المواقع التي تختار الانسحاب من OAI-SearchBot لن تظهر في إجابات بحث ChatGPT، وإن كان بإمكانها الظهور كروابط تنقّل.

كم يستغرق تغيير robots.txt حتى يسري على بحث ChatGPT؟

نحو 24 ساعة بحسب OpenAI، التي تقول إنه "قد يستغرق الأمر نحو 24 ساعة بعد تحديث robots.txt للموقع حتى تتكيف أنظمتنا".

أين توجد نطاقات IP الخاصة بـ GPTBot؟

على https://openai.com/gptbot.json. النسخة التي جلبناها في 2026-10-06 أُنشئت في 2026-09-22 وأدرجت 18 بادئة IPv4 ولا بادئة IPv6. ونطاقات OAI-SearchBot على openai.com/searchbot.json ونطاقات ChatGPT-User على openai.com/chatgpt-user.json. اجلب الملفات وفق جدول زمني بدل نسخ النطاقات، لأنها تتغير.

لماذا يأتي GPTBot من عنوان IP تابع لـ Microsoft؟

في عيّنتنا جاء كذلك: عنوان GPTBot الذي استعلمنا عنه وعنوانا OAI-SearchBot وChatGPT-User كانت كلها على شبكة Microsoft، أي AS8075. لا تذكر صفحة الزاحف لدى OpenAI الشبكة التي يزحف منها، ولذلك نكتفي بما أظهرته عيّنتنا. ولأن عملاء سحابة Microsoft الآخرين يشاركون ASN نفسه، فهذا لا يثبت شيئًا بمفرده. تحقق من عنوان IP مقابل gptbot.json بدلًا من ذلك.

هل سيؤدي حظر GPTBot إلى إزالتي من ChatGPT؟

ليس من بحث ChatGPT بحسب OpenAI. تقول وثائقها إن كل إعداد مستقل، وتضرب مثالًا بالسماح لـ OAI-SearchBot بالظهور في نتائج البحث مع منع GPTBot للانسحاب من التدريب. أما حظر OAI-SearchBot فهو ما يزيلك من إجابات بحث ChatGPT.

بقلم

فريق GeoIPHub

الفريق الذي يقف وراء واجهة GeoIPHub API

بقلم فريق GeoIPHub، وهم من يبنون واجهة GeoIPHub API لاستخبارات IP وماسحها. تُعَدّ المسودات بمساعدة الذكاء الاصطناعي ويحررها الفريق، وأمثلة API استعلامات حقيقية على واجهة API الحية ما لم تُوصف بأنها توضيحية.

شارك هذا المقال
مزيد من المقالات

مقالات ذات صلة