الأدوات
الأدلة

محلِّل User-Agent

تطوير

يحلِّل سلسلة User-Agent إلى متصفح ومحرك ونظام تشغيل ونوع جهاز. استدلالي، بالكامل في العميل.

100% من جهة العميل بدون خادم خلفي
سلسلة User-Agent
الإخراج
المتصفح
المحرك
نظام التشغيل
نوع الجهاز
روبوت / زاحف
في هذه الصفحة

ما هو مُحلِّل User-Agent؟#

سلسلة User-Agent (UA) هي سطر النصّ الذي يُلحقه كلّ متصفّح وعميل HTTP بطلباته ليصف نفسه. وهي أيضًا فوضى عديمة البنية شهيرة: تُكدّس البائعون رموز توافق تاريخية فوق بعضها، فتحوي سلسلة Chrome حديثة واحدة كلماتِ Mozilla وAppleWebKit وKHTML وGecko وSafari — لا واحدة منها تعني أنّ المتصفّح فعلًا أيٌّ من تلك الأشياء. قراءة UA خامّ بالعين بطيئة وعرضة للخطأ، ولهذا تُمرِّرها كلّ لوحة تحليلات وأداة سجلّ وصول وكشف بوت عبر مُحلِّل أولًا.

تأخذ هذه الصفحة أيّ سلسلة UA وتُقسّمها إلى الوقائع الخمسة التي تريدها فعلًا: المتصفّح (الاسم والإصدار)، والمحرّك (النواة العارضة)، ونظام التشغيل (النظام وإصداره)، ونوع الجهاز (مكتبي أومحمول أولوحيّ)، وisBot (هل تبدو السلسلة زاحفًا). تعمل بالكامل في متصفّحك — الصق سلسلةً من سطر سجلّ واقرأ التفصيل، بلا رحلة ذهاب وإياب للخادم.

سبب صعوبة كشف المتصفّح فوق ما يبدو هو الترتيب. يجب فحص المتصفّحات المتخصّصة قبل Chrome، لأنّ سلاسلها كلّها تحوي الرمز الحرفيّ Chrome للتوافق. فـ Microsoft Edge وOpera وSamsung Internet وVivaldi وCocCoc كلّها تُبلَّغ خطأً كـ Chrome بفحص if (ua.includes("chrome")) ساذج. والأمر نفسه يصحّ للمحرّكات: تظهر AppleWebKit في متصفّحات Blink (Chrome وEdge وOpera) وفي متصفّحات WebKit الصافية (Safari) على حدّ سواء، فيُستنتَج المحرّك من عائلة المتصفّح لا من مطابقة مباشرة.

كيفية الاستخدام#

  1. اضغط استخدام الحالي في الأعلى لتحميل navigator.userAgent الخاصّ بهذا المتصفّح في مربّع الإدخال — أسرع طريقة لرؤية شكل حركة زيارتك.
  2. أوالصق أيّ سلسلة UA في لوحة الإدخال — من سجلّ وصول nginx، أوreq.headers["user-agent"] في خادمك الخلفيّ، أومن طلب curl، أيًّا كان.
  3. اقرأ الصفوف الخمسة في لوحة الإخراج:
    • المتصفّح — اسم العائلة والإصدار الرئيسي (مثل Chrome 120).
    • المحرّك — محرّك العرض (Blink وWebKit وGecko وTrident).
    • نظام التشغيل — النظام والإصدار حيث يمكن استرجاعه (مثل Windows 10/11 وiOS 17 وAndroid 14).
    • الجهازdesktop أوmobile أوtablet، يُستنتَج من رموز مثل iPad وAndroid بلا Mobile وiPhone.
    • Botyes / no، يُعلَم بمطابقة معرّفات الزواحف (bot وcrawl وspider وslurp وpingdom وheadless وphantomjs وcurl وwget وpython-requests وaxios…).
  4. اضغط مسح لإفراغ اللوحتَين.
  5. يُلخّص سطر الحالة النتيجة أويُبلّغ أنّ الإدخال كان فارغًا.

الميزات الرئيسية#

  • كشف المتصفّح بالأخصّية أولًا. تُطابَق Edge وOpera وSamsung Internet وVivaldi وCocCoc وFirefox كلّها قبل Chrome وSafari، فلا تُبتلَع بصمت برمز توافق Chrome.
  • استنتاج المحرّك من العائلة. يُقرَّر Blink مقابل WebKit بالمتصفّح المكتشف، لا بمطابقة هشّة مباشرة على AppleWebKit — ولهذا لا تُبلَّغ سلسلة Safari كـ Chrome.
  • تصنيف نوع الجهاز. يُميَّز اللوحيات عن الهواتف برمز iPad وتمييز Android ... Mobile، والاستدلالات ذاتها التي تعتمد عليها أدوات التحليلات.
  • راية الزواحف. يُعلِم صف Bot السلاسل التي تريد استبعادها عادةً من مقاييس المستخدمين — زواحف البحث ومراقبو وقت التشغيل والمتصفّحات بلا رأس ومكتبات HTTP.
  • 100% من جهة العميل. لا تُرسَل سلسلة UA إلى أيّ مكان. ويعني ذلك أيضًا أنّك تستطيع لصق رموز من سجلّات الإنتاج دون تسرّبها إلى واجهة برمجة تطبيقات تحليل خارجية.

مثال عملي#

الصق سلسلة Chrome على Windows النموذجية هذه من سجلّ وصول:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

فتمتلئ الصفوف الخمسة:

Browser   Chrome 120
Engine    Blink
OS        Windows 10/11
Device    desktop
Bot       no

قارنها الآن بسلسلة Edge — لاحظ اللاحقة Edg/120:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0

مُحلِّلٌ ساذج يفحص Chrome أولًا يُبلّغ Chrome 120 هنا — خطأ. تفحص هذه الصفحة Edg/ قبل Chrome/، فتُنتج السلسلة نفسها بشكل صحيح Browser: Microsoft Edge 120، مع بقاء المحرّك Blink (Edge مبنيّ على Chromium).

حالة ثالثة تُظهر مسار البوت. سكربت فحص سلامة يُرسل curl/7.81.0 يُعلَم Bot: yes رغم أنّه لا يحوي غلاف Mozilla، لأنّ curl أحد رموز المكتبات التي يفحصها مطابِق البوت. وهو الصفّ الذي يتيح فصل حركة المستخدمين الحقيقيّين عن الضجيج الآلي حين تتأمّل سجلًّا.

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

لماذا يُبلِّغ متصفّحي Edge عن «Microsoft Edge» لا «Chrome»، رغم أنّ الـ UA تحوي كلمة Chrome؟#

لأنّ UA الخاصّ بـ Edge يُضمِّن عمدًّا Chrome/120.0.0.0 حتى تخدم المواقع المبنية لخدمة Chrome حافَّةً Edge أيضًا. يفحص هذا المُحلِّل رمز Edg/ أولًا ثمّ Chrome/، فتفوز العائلة المتخصّصة. أيّ مُحلِّل لا يرتّب فحوصه هكذا سيُبلِّغ كلّ مشتقٍّ من Chromium خطأً كـ Chrome.

هل أثق بإصدار نظام التشغيل من سلسلة UA؟#

إلى حدٍّ. يدمج Windows بين 10 و11 في Windows NT 10.0، فيُبلَّغان هنا 10/11. أمّا إصدارات iOS وmacOS فتُسترجَع من رمز OS X_x_x لكنّها تُجمَّد تاريخيًّا وقت الإصدار. عامل الإصدار كإشارة قويّة لا ضمان، ولا تُعلِّق عليه قرارات أمنية.

هل راية Bot موثوقة بما يكفي لحجب الحركة؟#

لا — كشف البوت المبنيّ على UA وسيلةُ تسهيلٍ لتحليل السجلّات وفلترة لوحات البيانات، لا حدًّا أمنيًّا. يُزوّر العملاء الخبيثون أيّ UA يشاؤون، بما في ذلك سلاسل تبدو بشرية تمامًا. استخدم هذا الصف لإمساك الزواحف والمكتبات الواضحة؛ واستخدم تحديد المعدّل والمصادقة والفحوص السلوكية لما يجب أن يكون موثوقًا فعلًا.

يُظهر المُحلِّل «Unknown» لكلّ شيء. ما الذي ألصقته؟#

إمّا سلسلة فارغة/فراغات، أوا UA من عميلٍ لا يتعرّف عليه هذا المُحلِّل (بعض تطبيقات المكتب وSDKs تُرسل معرّفات خاصة). سيقول سطر الحالة إنّ الإدخال كان فارغًا في الحالة الأولى؛ أمّا في الثانية فيسقط المتصفّح ونظام التشغيل إلى Unknown بينما يفترض نوع الجهاز desktop. وتُحفَظ السلسلة خامّ في لوحة الإدخال لتفتيشها.