0

サーバー/クライアント分散ツールを作成しています。ユーザーは、ある時点でネットワーク アドレスを入力する必要があります。親愛なるユーザーに伝えることで、現在の IP アドレスを特定できるようにしたいと考えています。

[更新]クライアントとサーバーは同じネットワークで実行されます。(または、ユーザーは管理者にアクセスできます) [/Update]

私が電話するDns.GetHostAddresses(Dns.GetHostName())と、すべて正しいが本当に役に立たないエントリの穴の束が得られます。ユーザーに提示する最も適切なエントリを選択するには、どのヒューリスティックを使用できますか?

4

1 に答える 1

2

私があなたの質問を正しく理解していれば、 と比較IPAddress.AddressFamilyAddressFamily.InterNetworkてフィルターダウンできます

if (ip.AddressFamily == AddressFamily.InterNetwork)

ここに完全なコードがあります

IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
    if (ip.AddressFamily == AddressFamily.InterNetwork)
    {
        // Local ip address
    }
}

AddressFamily.InterNetworkIPv4 アドレスに対する値です。IPv6 の場合は、 を使用できますAddressFamily.InterNetworkV6。完全なリストについては、このリンクを確認してください

于 2012-04-17T09:59:41.017 に答える