Следующие сценарии дают примеры использования 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 см. в разделе Ссылки.



Объявления:
    • Https://remmstroy.ru

      https://remmstroy.ru ремонт и отделка под ключ коттеджа.

      remmstroy.ru


  1. Телефония и интернет от Билайн
    Полный спектр услуг связи для вашего бизнеса у одного оператора!
    b2b.beeline.ru

     
  2. Ремонт грузовиков!
    Доска объявлений Avito.ru: любые предложения по ремонту грузовиков!
    www.avito.ru

     
  3. Купить коттедж
    Все коттеджные поселки Подмосковья.Готовые загородные дома.Актуальные цены!
    realty.dmir.ru

     
  4. Все о модных тенденциях от ELLE!
    Модные платья: узнай больше на ELLE.ru!
    www.elle.ru

     
  5. Портал для автомобилистов Питера.
    Задумались о сервисе Toyota? Автосалоны Питера по районам.
    110km.ru

     
  6. Кредит от 1 000 000 рублей!
    Быстро получить наличными в Москве. Подбор банка, %, документов за 1 час.
    kreditnavse.ru

     
  7. Доставка цветов цветы, до 90%
    Доставка цветов цветы со скидкой до 90%. Сайт всех скидок!
    kuponator.ru

     
  8. Шлифовка гранита и мрамора.
    От 350 руб/кв м. Клининг. Профессионально. Заказ от 1000 р. Скидки !
    www.cc-servis.ru

     
  9. новинки мебели
    выбери Мебель правильно, мы про Мебель знаем всё!
    startremont.ru

     
  10. Табличная верстка веб-сайтов
    Верстка сайта таблицами. Срочность, низкие цены. Валидность кода.
    htmlfromdesign.by

     
  11. Оборудование для теплых полов!
    Теплый пол Nexans. Низкие цены! Доставка каждый день.
    stroyshopper.ru

     
  12. кондиционер с монтажом за 23 000р
    кондиционер с доставкой, монтажом и расходниками всего за 23 000 р
    damholod.ucoz.ru

     
  13. кухни под заказ всегда в продаже
    Огромный выбор кухни под заказ, выгодные цены!
    www.stpark.ru

     
  14. Модные платья весна-лето 2011
    Интернет-магазин итальянской одежды Бесплатная доставка.
    lifemoda.ru

     
  15. Генератор кислорода
    Проектирование, поставка, монтаж. В наличии в Екатеринбурге. Выгодные цены!
    www.criotehnika.ru

     
  16. Скидки на туры в Турцию
    Турция от ведущих туроператоров со скидкой до 50%. Клуб скидок WeClever
    www.weclever.ru

     
  17. Игра Танки Online - 3D боевик
    Суперпопулярная бесплатная стрелялка. Прими участие в танковых боях
    gamergid.ru

     
  18. Путевки в тайланд
    Горячие Путевки В Тайланд по выгодной цене! Туры в Тайланд от туроператора
    tour-spa.ru

     
  19. Напольные кондиционеры Samsung
    Купить Напольные кондиционеры Samsung с доставкой Монтаж от 9000р. Гарантия
    pevnev.ru

     
  20. Детские товары на Bingo.ru!
    Огромный выбор детских товаров в супер шоппинг-молле. Выбери сейчас!
    bingo.ru

     
  21. Курсы по таможенному делу.
    Курсы дополнительного образования для школьников при академии МАБиУ.
    mabiu.ru

     
  22. Хотите купить смеситель Bandini ?
    Смесители Bandini оптом и в розницу от производителя.Доставка в день заказа
    sanbrend.ru

     
  23. Ecalum. Шкафы купе на заказ.
    Изготовление шкафов купе венге. Аналогов нет!
    www.ecalum.ru

     
  24. Доставка Старый Оскол, до 90%
    Доставка Старый Оскол со скидкой до 90%. Сайт всех скидок!
    kuponator.ru

     
  25. Где можно хорошо заработать?
    В кризис нужно вкладывать на форекс. Доверительное управление
    invest5.ru

     
  26. Philips GC 4430
    Цена: 2855 руб. Доставка. Гарантийное обслуживание.
    www.electrohit.ru

     
  27. отели курорта таба
    Акции для наших клиентов! Бесплатное такси и другие подарки! Звони!
    vipzayavka.ru

     
  28. Постановка свадебного танца
    Индивидуальный подход.Профессиональные педагоги.Сеть залов.1000 руб/60 мин!
    shkolatanza.ru

     
  29. Ищете саженцы? Заходите!
    Широкий ассортимент саженцев для озеленения с бесплатной доставкой, звоните
    ggreen.ru

     
  30. Двуспальная кровать - классика
    Двухспальные кровати в классическом стиле, дерево массив шириной 1,6-1,8 м.
    www.paoli.ru