La méthode .Net intégrée System.Net.IPAddress.ToString() se comporte de manière incohérente pour les adresses IPv6.Qu'est-ce qui dicte la mise en forme des adresses IPv6 par System.Net.IPAddress.ToString()?
Compte tenu du tableau d'octets 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
, dans certains environnements "aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa"
est retourné, alors que d'autres reviennent "aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:172.172.172.172"
. Je comprends que les deux sont des formats IPv6 valides, mais je voudrais pouvoir expliquer la différence. Il semble que les environnements plus récents (Windows 7 et Server 2008 R2) sont plus susceptibles de produire le premier comportement, j'ai donc vérifié les différences évidentes comme la version du framework .Net, mais j'ai été incapable de détecter un pattern.
Y a-t-il un moyen de sélectionner un format par rapport à l'autre, ou dois-je coder autour de ceci pour obtenir un comportement cohérent?
code recréées:
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());