يتلقى نص PAC اسم المضيف من عنوان URL. لا يصبح dashboard تلقائيًا dashboard.example.internal قبل المطابقة:

function FindProxyForURL(url, host) {
  if (isPlainHostName(host)) {
    return "DIRECT";
  }
  return "PROXY 203.0.113.10:8080";
}

استخدم نقطة نهاية HTTP حقيقية بدلًا من عنوان التوثيق؛ توفر قائمة وكلاء HTTP مرشحين لاختبارات الوجهات العامة حيث يُسمح بذلك المسار. في هذا النص البرمجي يعيد الاسم القصير عن قصد DIRECT؛ أما الاسم المؤهل بالكامل فيصل إلى فرع الوكيل. يعني “Plain hostname” كتابة بلا نقاط، وليس استنتاجًا بأن المضيف على شبكة محلية موثوقة.

إذا كانت السياسة المطلوبة نطاقًا داخليًا واحدًا، فطابق ذلك النطاق بدلًا من كل اسم قصير. لـ dnsDomainIs و shExpMatch مدخلات ودلالات أنماط مختلفة. فحص اللاحقة الخاص بـ .example.internal لا يشمل الجذر المطابق example.internal؛ أدرج تلك الحالة صراحةً عند الحاجة. النمط بأسلوب الصدفة ليس شبكة IP فرعية ولا تعبيرًا نمطيًا.

قارن نتيجة النص البرمجي للاسم القصير والاسم المؤهل بالكامل ومضيف عام غير ذي صلة وأي جذر نطاق مقصود. يختبر هذا اختيار القاعدة دون الاتصال بالوكيل. افحص أول قاعدة تُعيد قيمة عندما يمنع فرع DIRECT واسع محاولة الوصول إلى نقطة نهاية يمكن الوصول إليها لولا ذلك.

استخدم مقارنة الأسماء عندما تعبّر عن السياسة؛ إذ تضيف مساعدات DNS استعلاماتها وتأخيرها. أبقِ التجاوز المحلي الضمني للمتصفح منفصلًا عن النص البرمجي أيضًا. لا يمكن لفحص localhost أن يحل محل الكتابة الحقيقية للوجهة العامة أو الداخلية.

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