Егер Jint PAC-ты бағалау кезінде жетіспейтін dnsResolve немесе myIpAddress туралы хабарласа, қосымша JavaScript жүктеу міндетті шешім емес. Бұл PAC көмекшілері хост қолданбасы ұсынатын ортаға жатады.

FindProxyForURL шақыру алдында

Қолдау көрсетілетін PAC көмекшілер жиынтығы мен мекенжай отбасыларын таңдаңыз, содан кейін ол көмекшілерді қозғалтқышқа орнатыңыз. Олардың шарттарын сақтаңыз: dnsResolve хост атауын алады, myIpAddress аргумент алмайды және жергілікті интерфейс саясатын қажет етеді, ал shExpMatch shell стиліндегі үлгілерді пайдаланады. Ыңғайлы мән қайтаратын stub жасырын түрде қате маршрутты таңдауы мүмкін.

Осы инициализациядан кейін 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 үшін. Бір үлгі нәтижесіне сәйкес келу браузердің маршруттау мінез-құлқына сәйкес келуден азырақ дәлелдейді.

Қатысты мақалалар