Что определяет форматирование IPv6-адресов с помощью System.Net.IPAddress.ToString ()?

Встроенный метод .Net System.Net.IPAddress.ToString () ведет себя непоследовательно для адресов 1280v6 для адресов 1280v6 для адресов. array 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA , в некоторых средах «aaaa: aaaa: aaaa: aaaa: aaaa: aaaa: aaaa 11, тогда как aa45: другие вернули: aaaa 11, тогда как aa45 : aaaa: aaaa: aaaa: 172.172.172.172 ".

Я понимаю, что оба являются допустимыми форматами IPv6, но я хотел бы объяснить разницу.

Кажется, что новые среды (Windows 7 и Server 2008 R2) с большей вероятностью будут производить первое поведение, поэтому я проверил очевидные различия, такие как версия .Net framework, но мне не удалось обнаружить закономерность.

1283] Есть ли способ выбрать один формат вместо другого, или мне нужно кодировать это, чтобы добиться согласованного поведения?

Код для воссоздания:

    byte[] bytes = {0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA};
    IPAddress myIP = new IPAddress(bytes);
    Console.WriteLine(myIP.ToString());
5
задан Ed Harper 1 February 2011 в 13:48
поделиться