1

複数の IPv4 アドレスがある環境で、リッスンするアドレスを選択するにはどうすればよいですか? 私は次のコードで運が悪かった:

foreach(IPAddress addr in Dns.GetHostAddresses(Dns.GetHostName()))
    if (addr.AddressFamily == AddressFamily.InterNetwork)
        if (!IPAddress.IsLoopback(addr))
            return addr.ToString();

次のインターフェイス アダプタはループバック アドレスとは見なされないため、次のようになります。

Ethernet adapter loopback:
Connection-specific DNS Suffix  . : 
Description . . . . . . . . . . . : Microsoft Loopback Adapter
Physical Address. . . . . . . . . : XX.XX.XX.XX.XX.XX
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Autoconfiguration IPv4 Address. . : 169.254.XXX.XXX(Preferred) 
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : 
DNS Servers . . . . . . . . . . . : XXX: XXX: XXX:XXXX::XXX
                                    XXX: XXX: XXX:XXXX::XXX
                                    XXX: XXX: XXX:XXXX::XXX
NetBIOS over Tcpip. . . . . . . . : Enabled

一部のプログラマーは、名前付きの「ローカル エリア接続」が存在し、それが常に正しいインターフェイスであると想定しているのを見てきましたNetworkInterfaceが、それが正しいアプローチだとは思いません。

4

1 に答える 1