CodeNaked's answer is almost correct, but please pay attention to IPAddress.IsIPv6SiteLocal. The original local IPv6 site addresses (fec0 :: / 10) are out of date.
These days, instead of Local Local, unique local addresses (ULAs) are used. ULA has two options: fc00 :: / 8 has not yet been defined, but can be used in the future for internal addresses registered in a central location (ULA Central). fd00 :: / 8 is used and not registered anywhere. Prefixes from this range are randomly generated.
Unfortunately, IsIPv6SiteLocal only checks the original obsolete version:
PS C:\Users\Administrator> [System.Net.IPAddress]'fec0::' Address : AddressFamily : InterNetworkV6 ScopeId : 0 IsIPv6Multicast : False IsIPv6LinkLocal : False IsIPv6SiteLocal : True IPAddressToString : fec0::
It does not recognize ULA Central:
PS C:\Users\Administrator> [System.Net.IPAddress]'fc00::' Address : AddressFamily : InterNetworkV6 ScopeId : 0 IsIPv6Multicast : False IsIPv6LinkLocal : False IsIPv6SiteLocal : False IPAddressToString : fc00::
Or a locally designated ULA:
PS C:\Users\Administrator> [System.Net.IPAddress]'fd00::' Address : AddressFamily : InterNetworkV6 ScopeId : 0 IsIPv6Multicast : False IsIPv6LinkLocal : False IsIPv6SiteLocal : False IPAddressToString : fd00::
See http://tools.ietf.org/search/rfc4193 for details.
source share