Где в Windows находится файл Javascript, содержащий функции для выполнения файлов PAC?

Автоконфигурация прокси (PAC) - это традиционный метод, с помощью которого веб-браузеры автоматически настраиваются на использование соответствующего прокси для любого сайта. Файлы PAC состоят из одной функции, реализованной на JavaScript.

Я хотел бы выполнить эту функцию для другой цели: я пытаюсь создать приложение, которое выбирает прокси-сервер для использования точно так же, как это может сделать Microsoft Internet Explorer. Поскольку я не могу просто спросить IE, какой прокси-сервер он будет использовать для определенного сайта, я пытаюсь имитировать то, что IE будет делать, когда выбирает, какой прокси использовать для данного веб-ресурса.

Функцию JS легко вызвать с помощью хоста сценариев Windows, но для выполнения файла PAC мне нужно несколько стандартных функций, таких как shExpMatch и isPlainHostName. Обычно они предоставляются браузером. Firefox предоставляет этот файл в виде простого в использовании JS-файла - к сожалению, реализация FF не кажется полностью совместимой с реализацией Microsoft Javascript.

Мне нужно найти официальные реализации этих функций Microsoft, чтобы я мог включить их в свою среду сценариев, прежде чем пытаться вызвать функцию.

Есть идеи, где они могут быть?

Спасибо

Обновление 0: я нашел задокументированная функция Microsoft, которая может делать то, что мне нужно - вопрос в том, как я могу вызвать это из Win32Com в Python 2.4.4?


person Salim Fadhley    schedule 03.07.2009    source источник
comment
Вероятно, похоронен внутри ресурсов exe для IE   -  person Matthew Scharley    schedule 03.07.2009
comment
Интересно, есть ли способ вызвать IE и попросить его сделать всю тяжелую работу?   -  person Salim Fadhley    schedule 03.07.2009


Ответы (1)


Я не знаю, где находится фактическая реализация, однако Microsoft предоставила код, который вы можете вызвать, реплицирующий функциональность платформы .NET в пространстве имен System.Net.

Класс называется WebProxyScriptHelper, но, к сожалению, он настроен на внутреннюю видимость, поэтому вы не можете вызвать его напрямую (вы не говорите, какой язык вы используете, поэтому это может даже не быть вариантом). К счастью, Microsoft сделала доступным исходный код < / a> в любом случае.

Отредактировано для добавления:

Также имеется функция Windows API, WinHttpGetProxyForUrl. . Возможно, это то, что вам следует использовать вместо этого?

person Jon Grant    schedule 03.07.2009
comment
Я нашел кое-что, что могло бы быть полезно: stackoverflow.com/questions/1078939/ Я добавил обновление, которое отвечает на ваши вопросы. - person Salim Fadhley; 03.07.2009