1

ドットネットのリファレンスによると、

Dns.GetHostAddresses("") 

IPv4 アドレスを返す必要があります。ただし、Windows 7 マシンでは IPv6 しか取得できません。別の Windows 7 でプログラムを試してみましたが、結果は同じでした。XP マシンでのみ IPv4 が正しく返されました。

私が試してみると、

Dns.GetHostEntry("");

1 つの IPv4 と 1 つの IPv6 を正しく返すようになりました。GetHostEntry() を使用したくないため、GetHostAddresses() から IPv4 を取得するにはどうすればよいですか。DNS を検索します。

また、1 つのネットワーク カードを搭載したコンピューターの場合、コードは 2 つの同一の IPv6 の配列を返します。これは正常ですか?

4

1 に答える 1

2

これは私にとってはうまくいきます:

IPHostEntry ipHostEntry = Dns.GetHostEntry("example.com");
IPAddress ipAddress = ipHostEntry.AddressList.First(a => a.AddressFamily == AddressFamily.InterNetwork); // ipv4

一意性を保証する MAC アドレスを含むものと、プライバシー/セキュリティを強化しないものです。しかし、なぜあなたのものが同一になるのかわかりません。

于 2013-08-22T00:32:37.677 に答える