在 Windows 7 上使用不同的网络和不同的代理服务器

在 Windows 7 上使用不同的网络和不同的代理服务器

我有一台运行 Windows 7 Professional 的笔记本电脑。我每天都会连接两个无线网络:

  • 主页:无代理服务器
  • 工作:带身份验证的代理服务器

在我的 iPad 和 iPhone 上,我有两个 WIFI 网络配置文件(一个用于家庭,一个用于工作)。工作网络配置文件指定了代理服务器设置。家庭网络配置文件没有指定代理。一切都运行良好,每当我从家到公司或从公司到家时,我都不需要更改设置。

但是,在我的笔记本电脑上,我似乎无法实现这一点。我当然可以连接到两个网络,但当我在工作时,我必须去更改代理设置(在 Internet 选项中)才能使用网络。当我在家时,我必须去关闭它们。这是一件小事,但考虑到这是我每天都必须做的事情,这有点烦人。

有什么方法可以让 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 切换器
网络设置员

NetSetMan 具有更广泛的功能集,免费版本可以翻转:IP 地址、网关(包括度量)、DNS 服务器、WINS 服务器、IPv4/IPv6、WiFi 管理、计算机名称、工作组/域、DNS 域/后缀、默认打印机、网络驱动器、NIC 状态和 SMTP 服务器。

图像

答案3

TCP/IP 管理器看起来是个不错的解决方案,而且还是开源的。它能够在配置文件之间切换,甚至可以创建 BAT 脚本来处理更多事情!

相关内容