TCP/IP変更ツール

Webアプリケーション開発において、様々なネットワークを使い分けて作業する場面に出くわすことは珍しくない。開発用、本番接続用、社外接続用の環境が異なるのは、よくあることである。では、各環境に合わせた端末が各開発者に用意されているかというと、デスクの物理的な幅の制約であったり、マシンを用意するコストが掛かったりするので、開発者はLANケーブルを差し替え、TCP/IPを各環境に合わせて変更することで対応するしかない。
そこで、開発者の負荷を少しでも軽減すべく以下のツールを作成した。

◇◇◇ TCP/IP変更ツール ◇◇◇
 <機能>
    TCP/IPの接続情報を容易に変更することができる。
    また、変更前に現在の接続先を確認することができる。


 <リソース>
    1. TCP-IPchanger.vbs←------実行プログラム
    2. connection.properties←-----現在の接続先を管理する。
    3. osaka.bat←----------1から呼び出されて、4の接続定義情報に変更する。
    4. osaka.nsh←----------大阪の接続定義情報。
    5. tokyo.bat←----------1から呼び出されて、6の接続定義情報に変更する。
    6. tokyo.nsh←----------東京の接続定義情報。
    ※今回のサンプルは、大阪と東京のネットワークを使い分けると仮定している。


 <操作イメージ>

    

                 


 <リソース詳細>
    ※文字色が黄色の箇所は、各自の環境に合わせて変更して下さい。

1. TCP-IPchanger.vbs

'Shellオブジェクトを取得する。
Set WshShell = WScript.CreateObject("WScript.Shell")

'実行ファイルセット
Dim read_file, bat_file1, bat_file2, prop_file, MyVar, MyVar2, nowConnection, readLine
prop_file = "connection.properties"
bat_file1 = "tokyo.bat"
bat_file2 = "osaka.bat"

'メッセージセット
Dim ip1, ip2, msg1, msg2, msg3, msg4, msg5, title1, title2, title3
ip1 = "東京"
ip2 = "大阪"
msg1 = "に接続中です。"
msg2 = "に接続する場合は『はい』を選択して下さい。"
msg3 = "に接続する場合は『いいえ』を選択して下さい。"
msg4 = "に変更します。コマンド画面が閉じるまでお待ち下さい。"
msg5 = "終了します。"
title1 = "現在の接続先"
title2 = "接続先選択"
title3 = "完了"

Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set read_file = fso.OpenTextFile(prop_file)
readLine = read_file.ReadLine

'現在の接続先をチェックする。
If readLine = "0" Then
nowConnection = ip1
ElseIf readLine = "1" Then
nowConnection = ip2
End If

read_file.Close()

'現在の接続先を表示する。
If readLine = "0" Or readLine = "1" Then
MyVar2 = MsgBox (nowConnection + msg1, 64, title1)
End If

MyVar = MsgBox (ip1 + msg2 + Chr(13) + ip2 + msg3, 67, title2)
'キャンセル:2 / はい:6 / いいえ:7
If MyVar = 6 Then
Set read_file = fso.CreateTextFile(prop_file)
'実行ファイル呼び出し
WshShell.Run(bat_file1)
read_file.WriteLine "0"
MyVar = MsgBox (ip1 + msg4, 64, title3)
read_file.Close()
ElseIf MyVar = 7 Then
Set read_file = fso.CreateTextFile(prop_file)
'実行ファイル呼び出し
WshShell.Run(bat_file2)
read_file.WriteLine "1"
MyVar = MsgBox (ip2 + msg4, 64, title3)
read_file.Close()
Else
WScript.Echo msg5
End If
Set fso = Nothing


2. connection.properties

0


3. osaka.bat

start /min netsh -f C:\hoge\osaka.nsh


4. osaka.nsh

#========================
# インターフェイス構成
#========================
pushd interface
reset all
popd

#========================
# インターフェイス構成
#========================
pushd interface ipv6
uninstall
popd

# ----------------------------------
# ISATAP 構成
# ----------------------------------
pushd interface ipv6 isatap
popd

# ----------------------------------
# 6to4 構成
# ----------------------------------
pushd interface ipv6 6to4
reset
popd

#========================
# ポート プロキシ構成
#========================
pushd interface portproxy
reset
popd

# ----------------------------------
# インターフェイス IP 構成
# ----------------------------------
pushd interface ip
set address name="ローカル エリア接続" source=static addr=999.999.999.999 mask=999.999.999.999 gateway=999.999.999.999 gwmetric=1
set dns name="ローカル エリア接続" source=static addr=none register=PRIMARY
set wins name="ローカル エリア接続" source=static addr=none
popd


5. tokyo.bat

start /min netsh -f C:\hoge\ tokyo.nsh


6. tokyo.nsh

#========================
# インターフェイス構成
#========================
pushd interface
reset all
popd

#========================
# インターフェイス構成
#========================
pushd interface ipv6
uninstall
popd

# ----------------------------------
# ISATAP 構成
# ----------------------------------
pushd interface ipv6 isatap
popd

# ----------------------------------
# 6to4 構成
# ----------------------------------
pushd interface ipv6 6to4
reset
popd

#========================
# ポート プロキシ構成
#========================
pushd interface portproxy
reset
popd

# ----------------------------------
# インターフェイス IP 構成
# ----------------------------------
pushd interface ip
set address name="ローカル エリア接続" source=static addr=999.999.999.999 mask=999.999.999.999 gateway=999.999.999.999 gwmetric=1
set dns name="ローカル エリア接続" source=static addr=none register=PRIMARY
set wins name="ローカル エリア接続" source=static addr=none
popd