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

Joh*_*ohn 7 windows-7 proxy

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

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

在我的 iPad 和 iPhone 上,我有两个 WIFI 网络配置文件(一个用于家庭,一个用于工作)。工作之一指定了代理服务器设置。家庭没有指定代理。一切都很好,我不需要在从家里搬到办公室时改变设置,反之亦然。

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

有什么方法可以让 Windows 根据我连接的网络自动打开或关闭代理设置?

dav*_*pcj 5

今天的大多数浏览器都支持代理配置脚本。这只是一些 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";
   }
Run Code Online (Sandbox Code Playgroud)

最后一点特别重要,因为它允许您的系统尝试代理,然后回退到无。

还有一个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";
}
Run Code Online (Sandbox Code Playgroud)

尽管某些浏览器/系统在这一点上感到困惑,并且可能会返回 127.0.0.1


har*_*ymc 2

以下是一些可以一键切换所有网络属性的免费产品:

使用免费 IP 切换器
NetSetMan

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

图像