ホストの切り替え

トップ > チップス > ホストの切り替え
2012-02-13, hosts

/tips/other/hosts **目的 自社内LANに設置して、ルータのDMZ機能を使って外部に公開しているサーバにローカルIPで直接接続する方法です。Windowsでは、DNSからの名前解決に優先してC:\\WINDOWS\\system32\\drivers\\etc\\hostsというファイルからホスト名に対応するIPを検索することができます。この機能を利用して、各アプリケーションの接続設定(ホスト名)を変更せずに、どこからでもサーバを利用できるようにします。

**手順 C:\\WINDOWS\\system32\\drivers\\etc(hostsファイルの存在するディレクトリ)に、切り替え対象のファイルを「hosts.xxx.txt(xxxが切り替えのスイッチ)」という名前で準備します(hostsファイルをコピーして作成します)。

例:hosts.local.txt :127.0.0.1 localhost :192.168.0.2 example.co.jp

例:hosts.internet.txt :127.0.0.1 localhost :222.xxx.xxx.xxx example.co.jp

ネットワークに接続した場所に応じてこれらのファイルをhostsファイルと置き換えて利用します。切り替えには以下のようなスクリプトが便利です。

change-hosts.vbs : ' : ' ホスト切り替えスクリプト : ' hostsファイルと同じフォルダにhosts.xxx.txtを準備しておいて、 : ' それらをhostsファイルと置換するためのスクリプトです。 : ' : : 'セットするhostsの場所を指定 : location=InputBox ("セットするhostsの場所を指定。(local,internet)") : : Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") : stringHost = "C:\\WINDOWS\\system32\\drivers\\etc\\hosts" : : 'オリジナルのファイルをバックアップ : If objFSO.fileExists (stringHost) Then : objFSO.CopyFile stringHost,stringHost+".bak" : objFSO.DeleteFile "C:\\WINDOWS\\system32\\drivers\\etc\\hosts" : End If : : stringNewHost = "C:\\WINDOWS\\system32\\drivers\\etc\\hosts"+"."+location+".txt" : : If objFSO.fileExists (stringNewHost) Then : objFSO.CopyFile stringNewHost,stringHost : WScript.Echo stringNewHost+"を適用しました。" : Else : WScript.Echo stringNewHost+"が見つかりません。" : End If

この記事は役に立ちましたか?