複数の 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
が、それが正しいアプローチだとは思いません。