IPv6アドレスにパーセント記号「%」があるのはなぜですか?
.NET Frameworkクラスを使用して、マシンのIPアドレスを取得しています。 Dns.GetHostAddresses(Dns.GetHostName()) IPv4とIPv6の両方のアドレスを持つVirtualBoxアダプターがあります。.NETコードを使用して、IPv6アドレスを取得していますfe80::71a3:2b00:ddd3:753f%16 最後に%16がありますか? ただし、を使用して同じクエリを実行するとWMI、「fe80 :: 71a3:2b00:ddd3:753f」としてアドレスが取得されます それで、%16には特別な意味がありますか? 編集: これについてもう少し観察しました。そして、彼らはスティーブン・ジェニングスが彼の答えで言ったことと非常によく一致しています。 Vmwareをインストールして、発行されたIPv6アドレスを確認しました。アドレスは:fe80 :: 3dd0:7f8e:57b7:34d5%19 fe80 :: b059:65f4:e877:c40%20 明らかに、%の後の数字は16進表記ではありません。Wmiを使用してネットワークアダプターで使用可能なすべてのプロパティを確認したところ、数値は各ネットワークアダプターのInterfaceIndexプロパティとまったく同じであることがわかりました。あたりとしてMSDN、それが一意に各ネットワークアダプタを識別し、このプロパティはVistaで導入されました。 まだ混乱しているのは、IPAddressクラスを使用すると、有効でない限り、その形式でIPアドレスを作成できるようになる理由です。答えはスティーブンによって提供されました。番号はスコープIDです。IPAddressには、アドレスとスコープIDを受け入れるコンストラクターがあります。 ああ、これら3つのネットワークアダプターはすべてリンクローカルでした。ipconfigで確認済み クール。面白かった!!