[NG集] ローカルのIPアドレスを取得する方法
以下のようなDNSを参照するメソッドを使ってはいけません!
Java
import java.net.InetAddress; String address = InetAddress.getLocalHost().getHostAddress();
C#
using System.Net; IPAddress[] ipaddresses = Dns.GetHostAddresses(Dns.GetHostName());
ネットワーク環境によってはDNSにアクセスできなかったり時間がかかったりして処理が重くなるためです。
開発マシンでは動くが本番では思った通り動かない、といった現象が起きやすくなる実装といえます。
DNSから他ホストの情報も取得する必要があるならついでに使うのはありですが。
そうではなく自ホストのみ取得する場合は、ネットワークインタフェース情報を参照するクラスを使いましょう。
自分の手元で動けばそれでいいというのはプログラマーが陥りやすい発想です。
つねに本番環境を意識した開発やテスト、また開発環境を本番環境に近づけて構築するといった工夫が大切です。
0 件のコメント: