Odpowiedź CodeNaked jest prawie poprawne, ale proszę uważać z IPAddress.IsIPv6SiteLocal. Pierwotne adresy lokalne witryny IPv6 (fec0 ::/10) są przestarzałe.
W tych dniach używane są Unikalne adresy lokalne (ULA) zamiast Lokacji lokacji. ULA ma dwa warianty: fc00 ::/8 nie jest jeszcze zdefiniowany, ale może być używany w przyszłości w przypadku adresów do użytku wewnętrznego zarejestrowanych w centralnym miejscu (centrala ULA). fd00 ::/8 jest w użyciu i nie musi się nigdzie rejestrować. Prefiksy z tego zakresu generowane są losowo.
Niestety IsIPv6SiteLocal sprawdza tylko oryginalnej wersji nieaktualne:
PS C:\Users\Administrator> [System.Net.IPAddress]'fec0::'
Address :
AddressFamily : InterNetworkV6
ScopeId : 0
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : True
IPAddressToString : fec0::
To nie rozpoznaje ULA centralny:
PS C:\Users\Administrator> [System.Net.IPAddress]'fc00::'
Address :
AddressFamily : InterNetworkV6
ScopeId : 0
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : False
IPAddressToString : fc00::
lub lokalnie przypisany ULA:
PS C:\Users\Administrator> [System.Net.IPAddress]'fd00::'
Address :
AddressFamily : InterNetworkV6
ScopeId : 0
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : False
IPAddressToString : fd00::
proszę zobaczyć http://tools.ietf.org/search/rfc4193 dla dalszych szczegółów.