Следующие сценарии дают примеры использования PAC-файла для задания URL-адреса автопрокси. Чтобы использовать эти функции, нужно изменить имена прокси, номера портов и IP-адреса. Этот раздел содержит:

Пример 1. Локальные узлы подключаются напрямую, все остальные — через прокси

Следующая функция проверяет, является ли имя узла именем локального узла, и если да, то прямое ли подключение. Если имя узла не является именем локального узла, подключение идет через прокси-сервер (прокси).

function FindProxyForURL(url, host)
 {
 if (isPlainHostName(host))
 return "DIRECT";
 else
 return "PROXY proxy:80";
 }

Функция isPlainHostName проверяет, есть ли точки в имени узла. Если есть, возвращает false. Иначе возвращает true.

Пример 2. Узлы внутри брандмауэра подключаются напрямую, снаружи локальные серверы подключаются через прокси.

Следующая функция проверяет, является ли имя узла «простым» именем узла (имея в виду, что имя домена не включено) или частью определенного домена (.company.com), но при этом имя узла не www и не home.

function FindProxyForURL(url, host)
 {
 if ((isPlainHostName(host) ||
 dnsDomainIs(host, ".company.com")) &&
 !localHostOrDomainIs(host, "www.company.com") &&
 !localHostOrDoaminIs(host, "home.company.com"))
 return "DIRECT";
 else
 return "PROXY proxy:80";

}

Примечание

Функция localHostOrDomainIs исполняется только для URL-адресов в локальном домене. Функция dnsDomainIs возвращает true, если домен узла с этим именем соответствует данному домену.

Пример 3. Если узел распознаваемый, подключение напрямую, иначе — через прокси.

Следующая функция просит DNS-сервер распознать передаваемое ему имя узла. При распознании производится подключение напрямую. В противном случае — подключение через прокси. Это полезно, если внутренний DNS-сервер используется для распознавания всех внутренних имен узлов.

function FindProxyForURL(url, host)
 {
 if (isResolvable(host))
 return "DIRECT";
 else
 return "PROXY proxy:80";
 }

См. примечание к функции isResolvable вверху страницы.

Пример 4. Если узел находится в указанной подсети, подключение напрямую, иначе — через прокси.

Следующая функция сравнивает шаблон и маску данного IP-адреса с именем узла. Это полезно, если некоторые узлы подсети должны подключаться напрямую, а другие — через прокси.

function FindProxyForURL(url, host)
 {
 if (isInNet(host, "999.99.9.9", "255.0.255.0"))
 return "DIRECT";
 else
 return "PROXY proxy:80";
 }

См. примечание к функции isInNet вверху страницы.

Функция isInNet(узел, шаблон, маска) возвращает true, если IP-адрес узла соответствует указанному шаблону. Маска указывает, какую часть IP-адреса сопоставлять (255=сопоставлять, 0=игнорировать).

Пример 5. Определение типа подключения на основе домена узла

Следующая функция указывает подключение напрямую, если узел локальный. Если узел не локальный, эта функция определяет, какой использовать прокси, основанный на домене узла. Это полезно, если имя домена узла является одним из критериев выбора прокси.

function FindProxyForURL(url, host)
 {
 if (isPlainHostName(host))
 return "DIRECT";
 else if (shExpMatch(host, "*.com"))
 return "PROXY comproxy:80";
 else if (shExpMatch(host, "*.edu"))
 return "PROXY eduproxy:80";
 else
 return "PROXY proxy";
 }

Функция shExpMatch(str, shexp) возвращает true, если str соответствует shexp по шаблонам выражения оболочки.

Пример 6. Определение типа подключения на основе используемого протокола

Следующая функция извлекает используемый протокол и, соответственно, делает выбор прокси. Если не установлено соответствие по протоколу, производится подключение напрямую. Это полезно, если используемый протокол является одним из критериев выбора прокси.

function FindProxyForURL(url, host)
 {
 if (url.substring(0, 5) == "http:") {
 return "PROXY proxy:80";
 }
 else if (url.substring(0, 4) == "ftp:") {
 return "PROXY fproxy:80";
 }
 else if (url.substring(0, 7) == "gopher:") {
 return "PROXY gproxy";
 }
 else if (url.substring(0, 6) == "https:") {
 return "PROXY secproxy:8080";
 }
 else {
 return "DIRECT";
 }
 }

Функция substring извлекает указанное количество символов из строки.

Пример 7. Определение настройки прокси проверкой соответствия имени веб-узла IP-адресу

Следующая функция делает выбор прокси, преобразовав имя узла в IP-адрес и сравнив его с указанной строкой.

function FindProxyForURL(url, host)
 {
 if (dnsResolve(host) == "999.99.99.999") { // = http://secproxy
 return "PROXY secproxy:8080";
 }
 else {
 return "PROXY proxy:80";
 }
 }

См. примечание к функции dnsResolve вверху страницы.

Пример 8. Если IP узла соответствует указанному IP, подключение через прокси, иначе напрямую

Следующая функция — это другой способ сделать выбор прокси по указанному IP-адресу. В этом примере, в отличие от примера 7, используется вызов функции для прямого получения цифрового IP-адреса (в примере 7 используется функция dnsResolve для преобразования имени узла в цифровой IP-адрес).

function FindProxyForURL(url, host)
 {
 if (myIpAddress() == "999.99.999.99") { 
 return "PROXY proxy:80";
 }
 else {
 return "DIRECT";
 }
 }

Функция myIpAddress возвращает IP-адрес (в формате «целое-точка») узла, на котором запущен обозреватель.

Пример 9. Если в имени узла есть точки, подключение через прокси, иначе — напрямую.

Следующая функция выясняет, сколько точек в имени узла. Если в имени узла есть точки, подключение через прокси. Если в имени узла нет точек, подключение напрямую. Это другой способ определения типа подключения, основанный на характеристиках имени узла.

function FindProxyForURL(url, host)
 {
 if (dnsDomainLevels(host) > 0) { // if the number of dots in host > 0
 return "PROXY proxy:80";
 }
 return "DIRECT";
 }

Функция dnsDomainLevels возвращает целое число, равное количеству точек в имени узла.

Пример 10. Укажите дни недели для подключения через прокси, в другие дни — напрямую

Следующая функция определяет тип подключения указанием дней недели, уместных для прокси. В остальные дни используется подключение напрямую. Эта функция может пригодиться, если нужно использовать прокси при интенсивном трафике и разрешать подключение напрямую при слабом трафике.

function FindProxyForURL(url, host)
 {
 if(weekdayRange("WED", "SAT", "GMT")) 
 return "PROXY proxy:80";
 else 
 return "DIRECT";
 }

Функция weekdayRange(день1 [,день2] [,GMT] ) возвращает факт попадания текущего системного времени в диапазон, указанный параметрами день1, день2 и GMT. Обязателен только первый параметр. Параметр GMT указывает, что задано время по Гринвичу, а не местное.

Дополнительные ссылки:

  • Дополнительные сведения о дополнительных ресурсах и ссылках для пакета администрирования Windows® Internet Explorer® 8 см. в разделе Ссылки.



Объявления:

  1. Поиск работы в Вашем городе!
    Всегда актуальные вакансии! Обновление предложений по работе каждый день!
    elitework512.do.am

     
  2. Металлические водосточные системы
    Долговечные водостоки Icopal, Grand Line, Aquasystem. Расчет и монтаж.
    tvoidomspb.ru

     
  3. Мощный VPS хостинг с панелью!
    Тариф VPS 2X 1000Mhz CPU, 512Mb RAM, 20Gb HDD. 999 руб/мес.
    www.rusonyx.ru

     
  4. Затворы обратные
    Запорная арматура. Дисковые поворотные затворы Siwatec (Чехия). Низкие цены
    www.promarm.ru

     
  5. Заказ яхты для аренды в Москве
    Парусные и моторные яхты в Московском регионе. Заказ яхт от 3000 руб/час!
    www.parusflot.ru

     
  6. Встраиваемая техника Samsung
    Выгодные цены. Выбор. Гарантия. Ночью еще дешевле! Доставка от 300 р.
    www.moskvabyt.ru

     
  7. Передвижные архивные стеллажи
    Архивные стеллажи для офиса, библиотеки, архива - доставка и сборка !
    saturn.perm.ru

     
  8. дешевые домены .RU .COM
    Отдаем почти за даром. .RU - 210-270 руб, .COM - 390 руб.
    pwstudio.ru

     
  9. труба профильная квадратная
    виды, описание, характеристики Труб. мы рекомендуем - вы выбираете!
    voprosotvet.net

     
  10. Ищете KIA Pregio?
    Подберем Вам KIA Pregio! Диагностика, экспертиза, оформление
    www.podborauto.ru

     
  11. Гигрометры Testo
    Промышленные гигрометры влажности и температуры (трансмиттеры) Hygrotest.
    www.testo.ru

     
  12. Купите раздвижные шторки!
    Стеклянные раздвижные шторки в ванную! В наличии! Бесплатная доставка!
    www.artsan.ru

     
  13. Тюнинг выхлопных систем ! АТТ
    Изготовление спортивных выхлопных систем, тюнинг, насадки из нержавейки !
    glooshiteli.ru

     
  14. Парфюмерия известных брендов!
    Парфюм ведущих марок! От 135 руб. Online-заказ! Доставка в срок!
    www.wild-shopping.ru

     
  15. Стир. машины Hotpoint Ariston
    AQ7L 057 U - 14150 руб. Гарантия. Доставка - 400 руб.
    moskvabyt.ru

     
  16. Стеновые панели из массива и мдф.
    Изготовление стеновых панелей на заказ. Кабинеты. Библиотеки. Бильярдные.
    arkidesign.ru

     
  17. Коляски для двоени. Отзывы.
    Помощь в выборе детских колясок. Отзывы и полезные советы молодых мам на
    agulife.ru

     
  18. Страхование BMW. Скидки от 7%!
    ОСАГО/КАСКО для BMW! Избавим от общения со страховщиками! 24ч. Звоните!
    insur.smexpert.ru

     
  19. Где купить Chevrolet Lacetti?
    В ТЦ Кунцево! Chevrolet Lacetti от официального дилера! Гибкий кредит.
    www.chevrolet-kuntsevo.ru

     
  20. Ремни клиновые
    Сравнение цен на ремни клиновые. Все предложения Санкт-Петербурга!
    spb.pulscen.ru

     
  21. Аренда Москва и МО.
    Офис Волгоградский проспект. База объявлений - Из рук в руки.
    irr.ru

     
  22. Дешевый роуминг в Черногории
    Подключите SIM TRAVEL - выгодный роуминг в Черногории. Входящие - бесплатно
    www.sim-travel.ru

     
  23. Установка систем видеонаблюдения!
    Новейшие системы видеонаблюдения вы можете установить с нашей компанией.
    asb-i.ru

     
  24. База по недвижимости Москвы.
    Около м.Студенческая. Недвижимость, предложения от собственников.
    www.realto.ru

     
  25. Чашки чайные от 89 руб./шт.
    чайные сервизы из фарфора. Доставка. Много в наличии.
    www.profposuda.ru

     
  26. Разработка бизнес-планов под ВЭБ
    Финансовая модель, бизнес-план по рекомендациям Внешэкономбанк. Экспертиза
    www.expert-systems.com

     
  27. Джинсы для мальчиков Motion Wear
    Джинсы для мальчиков Motion Wear - 1064.00 руб. Доставка!
    www.season-shop.ru

     
  28. Помощь адвоката в делах с ГИБДД
    Торопитесь! Акция! Сегодня наши адвокаты проводят бесплатные консультации!
    zadamvopros.ru

     
  29. Автосервис Mitsubishi-скидки 90%!
    Купите сертификат и получите уникальную скидку на услуги автосервиса!
    www.carpot.ru

     
  30. Авиабилеты Минеральные Воды
    Акция! 1. Оставьте E-mail. 2. Покупайте купоны на авиабилеты со скидкой 60%
    groupon.ru