Phương thức builtNet .Net System.Net.IPAddress.ToString() hoạt động không nhất quán đối với địa chỉ IPv6.Điều gì quyết định định dạng địa chỉ IPv6 của System.Net.IPAddress.ToString()?
Cho mảng byte 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
, trong một số môi trường, "aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa"
được trả về, trong khi các giá trị khác trả về "aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:172.172.172.172"
.
Tôi hiểu rằng cả hai đều là định dạng IPv6 hợp lệ, nhưng tôi muốn có thể giải thích sự khác biệt.
Dường như môi trường mới hơn (Windows 7 và Server 2008 R2) có nhiều khả năng tạo ra hành vi đầu tiên, vì vậy tôi đã kiểm tra những khác biệt rõ ràng như phiên bản .Net framework, nhưng tôi không thể phát hiện mẫu.
Có cách nào tôi có thể chọn một định dạng trên định dạng khác hay không, tôi có phải viết mã này để có được hành vi nhất quán không?
Mã để tái tạo:
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());