アプリケーションの開発とテスト現場での話です。

ドメイン名の名前解決とは?

例えば、ブラウザに”https://cba-japan.com”と入れてエンターを押すと、弊社CBAのホームページが表示されます。
それは、
1)cba-japan.com というドメイン名が登録されている
2)世界中から、”cba-japan.com” を調べて、”IPアドレス(現在:52.193.247.185)”に変換できる(DNSによる名前解決)
3)ブラウザは、52.193.247.185 にアクセスしてページの情報をもらって表示する
という一連の作業が連携して行われているからです。

nslookupコマンドでの調査

実際の開発の現場では、「まだ世界に公開されていないドメイン名だが、今だけ、自分のマシンの中でだけ名前解決させたい」というニーズが生じることがあります。そんな時、WindowsマシンやLinuxマシン、Macなどでは、「”hostsファイル”に、ドメイン名とIPアドレスの独自の紐付け情報を登録する」ことで解決できます。

Wikipedia: hosts の用途のページ
上記のページは、hostsの使い方として、アンチウイルスソフトウェアがどうやってこの機能を活用しているか、なども解説されていて興味深いページです。

Windowsマシンでのhostsファイルの書き換え

Windows 10のマシンでは、hostsファイルは下記の場所にあります。
C:\Windows\System32\drivers\etc\hosts
テキストエディタなどでこのファイルを開き、「指定したいIPアドレス (スペース)そこと紐付けたい独自のホスト名」を1行ごとに登録しましょう。(セキュリティにも関係する重要なファイルですので不用意に編集することはお勧めできません。またファイルを編集するには管理者権限が必要になるはずです。)間にスペースを入れてあけておきます。ちなみにこのファイルの中には、「127.0.0.1 localhost」という設定がすでに含まれているはずです。そのため、ブラウザに http://localhost などと入れると、Windows 10は標準で、それを”127.0.0.1″ というアドレス(ループバックアドレス)に変換して処理する仕様になっています。

では製品チェックなどの際、「iPadやAndroid端末をテスト用に使用し、なおかつ、開発時のみのドメイン名解決が求められる場合」にはどうすれば良いでしょうか。モバイル端末の場合には、内部の隠されたところにあるため、容易な書き換えはできません。それで、別の方法で解決することになります。

Windowsマシンからインターネット回線を分けてもらって解決

「アンドロイド端末などのインターネット回線をノートPCが使えるようにすること」を「テザリング」と言ったりします。この反対の動作を設定して、今回の問題が解決できるか試してみます。これは、「Windows 10のノートPCの回線をアンドロイド端末が使えるようにすること」ですので、「逆テザリング」と呼ばれることもあるようです。
方法は以下のとおりです。

(1)Windows 10の設定から、「ネットワークとインターネット」を探す。

(2)左の項目に「モバイルホットスポット」という項目があれば、逆テザリングができます。

(3)「編集」というメニューから、適切なネットワーク名とネットワークパスワードを設定して、モバイルホットスポットをONにします。

(4)編集メニューでは、下記のような形で、ネットワーク名やパスワードを指定できます。

その後、モバイル端末から、「Windows 10のPCから出ているWifiモバイルスポット」を選択し、インターネットに接続してみてください。Windows 10マシンのhostsファイルで設定した内容が反映されるインターネット回線で、モバイル端末も同じようにテストできるようになりました!「hostsファイルを書き換えてください、と言われて、モバイル端末を脱獄(改造)しないといけないかと思っていた!」と困っていたテスターの方々の参考になれば嬉しいです。

hostsファイルは、DNSというシステムが普及する以前に開発された名前解決の仕組みですが、今でもその機能が各PCに残っており、こうした開発の現場では現役で動いている、というのも興味深いですね。