PAC चे मूल्यांकन करताना Jint ने 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 साठी. एका नमुना निकालाशी जुळणे ब्राउझरच्या मार्गनिर्देशन वर्तनाशी जुळण्यापेक्षा कमी सिद्ध करते.

संबंधित लेख