
私は Windows 7 Professional を実行しているラップトップを持っています。毎日接続するワイヤレス ネットワークは 2 つあります。
- ホーム: プロキシサーバーなし
- 仕事: 認証付きプロキシサーバー
iPad と iPhone には、2 つの Wi-Fi ネットワーク プロファイル (自宅用と職場用) があります。職場用のプロファイルにはプロキシ サーバー設定が指定されています。自宅用のプロファイルにはプロキシが指定されていません。すべて正常に動作しており、自宅から職場へ、またはその逆に移動するたびに設定を変更する必要がありません。
しかし、私のラップトップでは、これがうまくいかないようです。確かに両方のネットワークに接続できますが、職場にいるときは、ネットワークを使用できるようにプロキシ設定を変更する必要があります (インターネット オプション内)。家にいるときは、プロキシをオフにする必要があります。小さなことですが、毎日やらなければならないことを考えると、少し面倒です。
接続しているネットワークに基づいて、Windows でプロキシ設定を自動的にオンまたはオフに切り替える方法はありますか?
答え1
今日のほとんどのブラウザはプロキシ設定スクリプトをサポートしています。これは、DNS 名/IP を引数として受け取り、使用するプロキシを示す文字列を返す、ちょっとした JavaScript です。
http://en.wikipedia.org/wiki/Proxy_auto-config
JavaScript を知らなくても、かなり簡単です。ブラウザの「自動プロキシ構成スクリプト」設定をファイルに指定するだけです。一部のブラウザでは、スクリプトがネットワーク上のどこかにある必要があると要求します。
自分のマシンからファイルをホストするための小さなプログラムがあります。http://tinyserver.sourceforge.net/
しかし、私は通常、手元にあるローカル Web サーバーにそれを置くだけです。
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
ワンクリックですべてのネットワーク属性を切り替えることができる無料製品をいくつか紹介します。
NetSetMan にはより広範な機能セットがあり、無料バージョンでは、IP アドレス、ゲートウェイ (メトリックを含む)、DNS サーバー、WINS サーバー、IPv4/IPv6、WiFi 管理、コンピューター名、ワークグループ/ドメイン、DNS ドメイン/サフィックス、既定のプリンター、ネットワーク ドライブ、NIC ステータス、SMTP サーバーを切り替えることができます。
答え3
TCP/IP マネージャーオープンソースでもある、妥当なソリューションのようです。プロファイルを切り替えたり、BAT スクリプトを作成してさらに活用することもできます。