Большой Воронежский Форум
» Железный и soft форум>Файл автонастройки прокси в Опере, Файрфоксе, IE
lokil23 15:30 22.11.2011
Добрый день. Понадобилось тут в первый раз создать файлик для автонастройки прокси-сервера. Структура сети такая: 192.168.1.0 255.255.0.0 - это локалка. для всего остального 192.168.1.1:3128

Начал гуглить как этот файлик пишется, везде находил какие-то разные синтаксисы, но вот полурабочий:
Код:
function FindProxyForURL(url, host) 
{
   if (isInNet(host, "192.168.1.0", "255.255.0.0")) {
      return "DIRECT";
   } else {
      if (shExpMatch(url, "http:*"))
         return "PROXY 192.168.1.1:3128; DIRECT";
      if (shExpMatch(url, "https:*"))
         return "PROXY 192.168.1.1:3128; DIRECT";
      if (shExpMatch(url, "ftp:*"))
         return "192.168.1.1:3128; DIRECT";
      if (shExpMatch(url, "socks:*"))
         return "PROXY 192.168.1.1:3128; DIRECT";
      return "DIRECT";
   }
}
(в некоторых почему-то просто пишут return "192.168.1.1:3128";, в некоторых еще добавляют return "http 192.168.1.1:3128"; - я уже ничего не понимаю).

Так вот. моя конфигурация в разных браузерах работает по-разному:
Opera 11.52 - клала на него болт, прокси она не видит никак. Все идет как по локалке.
Firefox 7 - все работает, но при обращении к локальному адресу он все равно зачем-то ломится на прокси, если ему это запретить, он спокойно загрузит локальную страницу
IE 6(к сожалению под рукой другого нет) - Полная противоположность опере - все ломится на прокси.

Подскажите литературу как писать эти файлы, почему-то везде приводят примеры этого файла и никто не дает нормальных объяснений. как мне скажем для разных хостов сделать разные прокси? и почему у меня один и тот же файл обрабатывается в разных браузерах по разному? это у разрабов руки кривые или у меня? [Ответ]
X0R 16:11 22.11.2011

Сообщение от lokil23:
Opera 11.52 - клала на него болт, прокси она не видит никак. Все идет как по локалке.

не правда, ваш файлик исправно работает. Как вы его подключили в опере?

Сообщение от lokil23:
как мне скажем для разных хостов сделать разные прокси?

Сообщение от :
if (shExpMatch(url, "*vkontakte.ru/*")) {return "PROXY proxy1:3128";}
if (shExpMatch(url,"*microsoft.com/*")) {return "PROXY proxy2:8888";}

[Ответ]
lokil23 16:19 22.11.2011
Для разных хостов - я имел ввиду клиентов. Т.е. для адреса 192.168.1.2 - один прокси, 192.168.2.2 - другой.

первая картинка - firefox, вторая - opera.

upd:Сейчас файлик раздает простой HFS на винде, перенес его на ubuntu server 10.04, прописал у апача AddType application/x-ns-proxy-autoconfig .dat, рестарнул, так его вообще теперь никто не понимает. хотя в логах апача оба браузера спрашивают файл

Сообщение от :
192.168.1.20 - - [22/Nov/2011:17:27:08 +0400] "GET /wpad.dat HTTP/1.1" 200 807 "-" "Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"
192.168.1.20 - - [22/Nov/2011:17:27:32 +0400] "GET /wpad.dat HTTP/1.1" 200 807 "-" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.52"


Изображения
Нажмите на изображение для увеличения
Название: 2011-11-22_171615.png
Просмотров: 12
Размер:	2.2 Кб
ID:	1602004   Нажмите на изображение для увеличения
Название: 2011-11-22_171657.png
Просмотров: 82
Размер:	3.9 Кб
ID:	1602005  

[Ответ]
X0R 16:58 22.11.2011
lokil23, не должно вроде влиять, но поробуй изменить расширение файла на стандартное для этого случая *.pac [Ответ]
lokil23 11:01 23.11.2011
не помогло я в растерянности..

даже если я оставляю строку return "PROXY 192.168.1.1:3128; DIRECT"; - на виндовом сервере опера по-прежнему кладет болт, файрфокс работает, на линуксе оба браузера обращаются к файлу, но ничего не работает.

Ну главное выяснили - код я все-таки правильно написал. Что-то другое мешает.

upd:Ура! таки нужна правильная настройка веб-сервера.
Посмотрел где у апача прописаны Addtype - оказалось не в /etc/apache2/apache2.conf, а в .mods-enabled/mime.conf. Не думал что это имеет значение. Прописал - и все пошло как по маслу!

Остался открытым только вопрос: как для разных клиентов задать разные прокси? переменная host - это я так понимаю и есть адрес клиента? как мне прописать чтобы для 192.168.1.0/24 был прокси 192.168.1.1, для 192.168.2.0/24 - 192.168.2.1?
[Ответ]
X0R 11:10 23.11.2011
lokil23, а если файл брать не из сети, а с компа? [Ответ]
lokil23 11:41 23.11.2011
X0R, все заработало. см выше.

Не пойму теперь что делать с переменной host. переписал конфиг так:
Код:
function FindProxyForURL(url, host) {
if(host!=192.168.1.1){return "PROXY 192.168.1.1:3128; DIRECT";}
else {return "DIRECT";}
}
не работает. заменил host!=192.168.1.1 на 1!=2 - работает. [Ответ]
X0R 12:02 23.11.2011
lokil23, myIpAddress() возможно поможет [Ответ]
lokil23 13:16 23.11.2011
X0R, что-то пока не помогло. разберусь..
Гуглил эту функцию, нашел интересный мануал http://www.alexr.me/index.php?option...ndows&Itemid=5
может кому пригодится. [Ответ]
silly 23:39 23.11.2011
X0R правильно подсказывает, нужно только не забывать ip-адреса в кавычки заключать. [Ответ]
Hip-Hop 18:38 25.11.2011
lokil23, не советую вообще использовать этот способ. делайте прозрачный privoxy - он умеет делать различные редиректы и прочую хну. [Ответ]
Hip-Hop 18:44 25.11.2011
lokil23, И это не авто, авто это когда pac-файл приежает по dhcp? Или как ещё? А когда ты руками указываешь - эт хня. [Ответ]
Вверх