Ситуация такая: есть город N в котором множество частных локальных сетей, университетских сетей и провайдерских сетей. Все они договорились об безвозмездном обмене IP-трафиком. Есть полный список всех этих сетей в формате адрес_сети/длина_префикса (например 111.222.240.0/20). Для доступа к сайтам находящимся вне этих сетей нужно использовать прокси, а к сайтам размещенных в этих сетях необходимо обращаться напрямую.
Проблема в том, что прописать в исключениях прокси сервера домены не возможно т.к. доменов второго уровня относящихся к этим сетям очень много и их кол-во постоянно увеличивается, но зато список сетей (о котором речь шла выше) не меняется. А если в исключениях прописать список сетей, то когда обращаешься, например, к сайту www.my_city_domen.ru, который относится к одной из сетей указанных в исключениях, firefox вместо того, чтобы узнать ip-адрес домена my_city_domen.ru и найти его в исключениях, ищет в исключениях именно www.my_city_domen.ru, не находит и обращается к прокси-серверу не по ip-адресу а по доменному имени, а прокси отказывает в доступе (т.к. не хочет гонять просто так внутригородской трафик).
Можно ли настроить Лису, чтобы она перед тем как обратиться к прокси делала DNS-запрос (адрес DNS-сервера известен), выясняла не находится ли данный ip-адрес в исключениях, и если не находила его в исключениях, то только тогда обращалась к прокси, а иначе обращалась напрямую??? Или может есть другой способ решить мою проблему? Помогите, пожалуйста!

Можно попробовать настроить именно прокси. Почти все прокси умеют просто пропускать запросы по маске.

LattyF пишет

Можно попробовать настроить именно прокси. Почти все прокси умеют просто пропускать запросы по маске.

Вы имеете в виду отредактировать настройки самого прокси сервера? - это не возможно т.к. прокси-сервер принадлежит не мне а коммерчерской организации предоставляющей платный доступ за границы городской сети. И, видимо чтобы снизить нагрузку, не пропускает внутригородские соединения.

http://forum.mozilla.ru/viewtopic.php?id=6265
http://forum.mozilla.ru/viewtopic.php?id=10560

вот, собсна, поиск

Bananas пишет

http://forum.mozilla.ru/viewtopic.php?id=6265
http://forum.mozilla.ru/viewtopic.php?id=10560
вот, собсна, поиск

Вы неправильно меня поняли. Я прописал все сети в исключениях прокси в формате net_mask/pref_len, НО если обращаться к сайту не по ip-адресу, а по доменному имени (например www.my_city.host.ru), то даже несмотря на то, что данному имени сопоставлен ip-адрес прописанный в исключениях firefox обращается к прокси (т.е. он не делает DNS запрос, а проверяет "текстово" есть такой домен в исключениях или нет)

Неужели эта проблема не имеет решения? :(

а в других браузерах вам удалось настроить?

В IE настройки исключений для прокси вообще нет, а другими браузерами я не пользуюсь. :/

>В IE настройки исключений для прокси вообще нет
Есть. Свойства обозревателя- подключения. кнопочка "дополнительно" рядом с прокси и в окошке внизу прописываются исключения.
Мы прописываем в исключениях ip адреса (или подсети) и доменные имена - у нас в конторе таких исключений порядка 30. Думаю что другого выхода нет. Единственное что могу посоветовать если проблема в прописывании исключений на нескольких машинах одновременно - использовать файл ответов для прокси, формат файла и образцы в инете найти легко, выкладывается на любой доступный ресурс (фтп, ашттп, сеть....) и можно править в одном месте, централизовано. Причем формат файла общий для всех браузеров.
Еще вариант - если нужно только на своей машине - установить себе любой локальный прокси-сервер а его научить заворачивать куда надо.

Наткнулся на один интересный комент в другом топике http://forum.mozilla.ru/viewtopic.php?pid=54048#p54048

ИМХО браузеру (как Мозилле, так и Опера и ИЕ) нельзя в настройках прокси сказать forum.* и тем более *forum*
для этого есть proxy.pac (Automatic proxy configuration. http://wp.netscape.com/eng/mozilla/2.0/ … -live.html)

просто пример как работает

Выделить код

Код:

function FindProxyForURL(url, host)
  {
    if (isPlainHostName(host) ||
     dnsDomainIs(host, ".mydomain.com") ||
     isInNet(host, "198.95.0.0", "255.255.0.0"))
      return "DIRECT";
    else
      return "PROXY proxy.mydomain.com:8080";
}

Я не совсем понял куда вставляется этот код и как он работает, но у меня возникла мысль написать какой-нибудь скрипт или пропатчить SwitchProxy (я им пользуюсь) чтобы он перед подключением к прокси проверял принадлежность доменного имени к моим подсетям. Кто-нибудь из знающих подскажите, как это возможно сделать (и возможно ли)?