
У меня ноутбук с Windows 7 Professional. Каждый день я подключаюсь к двум беспроводным сетям:
- Главная: нет прокси-сервера
- Работа: прокси-сервер с аутентификацией
На моем iPad и iPhone у меня есть два сетевых профиля WIFI (один для дома, один для работы). На рабочем указаны настройки прокси-сервера. На домашнем прокси не указан. Все работает отлично, и мне не нужно менять настройки каждый раз, когда я переезжаю из дома на работу или наоборот.
Однако на моем ноутбуке я не могу заставить это работать. Я, конечно, могу подключиться к обеим сетям, но когда я на работе, мне приходится идти и менять настройки прокси (в свойствах обозревателя), чтобы иметь возможность использовать сеть. Когда я дома, мне приходится идти и отключать их. Это мелочь, но, учитывая, что это то, что мне приходится делать каждый день, это немного раздражает.
Можно ли как-то заставить Windows автоматически включать и выключать настройки прокси-сервера в зависимости от сети, к которой я подключен?
решение1
Большинство браузеров сегодня поддерживают скрипт конфигурации прокси. Это просто кусочек javascript, который принимает DNS-имя/IP в качестве аргументов и возвращает строку, указывающую, какой прокси использовать.
http://en.wikipedia.org/wiki/Proxy_auto-config
Довольно просто, даже если вы не знаете javascript. И все, что вам нужно сделать, это указать файлу настройку "скрипт автоматической конфигурации прокси" вашего браузера. Некоторые браузеры настаивают на том, чтобы скрипт находился где-то в сети.
Существуют небольшие программы для размещения файлов с вашего компьютера, напримерhttp://tinyserver.sourceforge.net/
Но обычно я просто размещаю его на каком-нибудь локальном веб-сервере, который у меня есть под рукой.
Пример autoconf.js:
function FindProxyForURL(url, host) {
// our local URLs from the domains below example.com don't need a proxy:
if (shExpMatch(host, "*.example.com"))
{
return "DIRECT";
}
// URLs within this network are accessed through
// port 8080 on fastproxy.example.com:
if (isInNet(host, "10.0.0.0", "255.255.248.0"))
{
return "PROXY fastproxy.example.com:8080";
}
// All other requests go through port 8080 of proxy.example.com.
// should that fail to respond, go directly to the WWW:
return "PROXY proxy.example.com:8080; DIRECT";
}
Последний бит имеет особое значение, поскольку он позволяет вашей системе попытаться использовать прокси-сервер, а затем вернуться к отсутствию прокси-сервера.
Также есть переменная myIpAddress
, которую можно использовать, как показано ниже:
function FindProxyForURL(url, host)
{
if (isInNet(myIpAddress(), "192.168.1.0", "255.255.255.0"))
return "PROXY 192.168.1.1:8080";
else
return "DIRECT";
}
Хотя некоторые браузеры/системы путаются в этом вопросе и могут возвращать 127.0.0.1
решение2
Вот несколько бесплатных продуктов, которые могут переключать все сетевые атрибуты одним щелчком мыши:
Бесплатный IP-коммутатор Eusing
NetSetMan
NetSetMan имеет более обширный набор функций, а бесплатная версия может переключать: IP-адреса, шлюзы (включая метрические), DNS-серверы, WINS-серверы, IPv4 / IPv6, управление WiFi, имя компьютера, рабочую группу/домен, домен/суффикс DNS, принтер по умолчанию, сетевые диски, состояние сетевой карты и SMTP-сервер.
решение3
Менеджер TCP/IPкажется справедливым решением, которое также имеет открытый исходный код. Он может переключаться между профилями и даже создавать скрипты BAT для большего количества всего!