サーバーを実行しており、自分の IP アドレスを表示したいと考えています。
コンピュータ自身の(可能な場合は外部)IP アドレスを取得するための構文は何ですか?
誰かが次のコードを書きました。
IPHostEntry host;
string localIP = "?";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily.ToString() == "InterNetwork")
{
localIP = ip.ToString();
}
}
return localIP;
しかし、私は一般的に作者を信用しておらず、このコードを理解できません。もっと良い方法はあるでしょうか?
ベストアンサー1
いいえ、それが最善の方法です。マシンには複数の IP アドレスがある可能性があるため、適切な IP アドレスを見つけるにはそれらのコレクションを反復処理する必要があります。
編集:私が変更したいのは、これだけです:
if (ip.AddressFamily.ToString() == "InterNetwork")
これに:
if (ip.AddressFamily == AddressFamily.InterNetwork)
ToString
比較のために列挙する必要はありません。