Jint میں PAC کی تشخیص: غائب مددگار اور راستے کے نتائج
FindProxyForURL کو کال کرنا صرف ایک قدم ہے: میزبان کو PAC مددگار نافذ کرنے، عمل کو محدود کرنے اور واپس کردہ راستوں کی فہرست کی تشریح کرنے کی ضرورت ہے۔
اگر Jint PAC کی تشخیص کے دوران بتائے کہ dnsResolve یا myIpAddress موجود نہیں، تو مزید JavaScript لوڈ کرنا لازمی حل نہیں ہے۔ وہ PAC مددگار اُس ماحول کا حصہ ہیں جو میزبان ایپلیکیشن فراہم کرتی ہے۔
FindProxyForURL کال کرنے سے پہلے
معاون PAC مددگاروں کا مجموعہ اور پتہ خاندان منتخب کریں، پھر وہ مددگار انجن پر نصب کریں۔ اُن کے معاہدے محفوظ رکھیں: dnsResolve میزبان نام لیتا ہے، myIpAddress کوئی دلیل نہیں لیتا اور مقامی انٹرفیس پالیسی درکار ہے، اور shExpMatch شیل طرز کے نمونے استعمال کرتا ہے۔ سہولت بخش قدر واپس کرنے والا اسٹب خاموشی سے غلط راستہ چن سکتا ہے۔
یہ ابتدائی کام ہونے کے بعد، Jint 4.4.0 میں بنیادی کال ایسی دکھ سکتی ہے:
var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
"FindProxyForURL",
destinationUrl,
destination.IdnHost
).AsString();engine ترتیب شدہ Jint.Engine ہے؛ pacSource حاصل کردہ PAC پروگرام ہے۔ destination.IdnHost پورٹ یا راستے کے بغیر میزبان نام فراہم کرتا ہے۔ یہ کال نہ PAC حاصل کرتی ہے اور نہ پروکسی کنکشن کھولتی ہے۔
کال کے بعد
PROXY proxy.example:8080; DIRECT جیسے نتیجے کو راستے کے امیدواروں اور بیک اپ کی ترتیب شدہ فہرست کے طور پر سمجھیں۔ پوری اسٹرنگ کو پروکسی URL کے طور پر بھیجنے سے اس کا مطلب ختم ہو جاتا ہے۔ تشخیص کی ناکامی کو واضح DIRECT نتیجے سے الگ رکھیں۔
جب یہ چل رہا ہو
Jint کی مدت، بیان، میموری اور منسوخی کی حدود ترتیب دیں اور صرف مطلوبہ میزبان افعال ظاہر کریں۔ DNS کال بیکس کو الگ سے محدود کریں: JavaScript کے عمل کی جانچ کسی بھی بلاک کرنے والی میزبان کال کو قابلِ خلل نہیں بناتی۔ ایک انجن تک رسائی کو ترتیب دیں یا متوازی کام کو الگ ملکیت والے انسٹینس دیں؛ انجن بیک وقت استعمال کے لیے محفوظ نہیں ہیں۔
براؤزرز کے PAC نفاذ مددگار توسیعات اور ظاہر کردہ URL تفصیلات میں مختلف ہو سکتے ہیں، خاص طور پر HTTPS کے لیے۔ ایک نمونہ نتیجے سے مماثلت براؤزر کے روٹنگ رویے سے مماثلت سے کم ثابت کرتی ہے۔