解释System.Net.IPAddress的实例属性
本文关键字:实例 属性 IPAddress System Net 解释 | 更新日期: 2023-09-27 18:00:05
我在理解System.Net.IPAddress
类时遇到了一点困难,因为我不知道在哪里可以找到一些属性所指的定义
IPAddress.IsIPv6LinkLocal
IPAddress.IsIPv6Multicast
IPAddress.IsIPv6SiteLocal
IPAddress.IsIPv6Teredo
我也很乐意接受一个指向解释这些概念的资源的答案。MSDN站点已被证明是不够的。
IPAddress.IsIPv6LinkLocal
链接本地地址是一个IP地址仅用于本地通信子网络。路由器不转发具有链接本地地址的数据包。
IPAddress.IsIPv6多播
多播地址是一个逻辑地址中的一组主机的标识符计算机网络,可用处理数据报或帧旨在为指定的网络服务。多播可以在链接中使用寻址层(OSI模型中的第2层),例如作为以太网多播,并且在用于Internet协议版本4(IPv4)或版本6(IPv6)多播。
IPAddress.IsIPv6SiteLocal
唯一本地地址(ULA)是块fc00::/7中的IPv6地址,在RFC 4193中定义。它是IPv6IPv4专用的对应方住址唯一的本地地址是可用于专用网络,例如在单个站点内,或者组织,或跨越有限网站或组织的数量。他们在全局IPv6中不可路由互联网
IPA地址.IsIPv6Teredo
在计算机网络中,Teredo是充分发挥支持IPv6的IPv6连接IPv4 Internet上的主机但没有直接的母语连接到IPv6网络。与其他类似协议相比它的显著特点是即使来自网络地址转换(NAT)设备,如家庭路由器。
CodeNaked的答案几乎是正确的,但请注意IPAddress.IsIPv6SiteLocal。原始IPv6站点本地地址(fec0::/10)已弃用。
如今,唯一本地地址(ULA)被用来代替站点本地地址。ULA有两种变体:fc00::/8尚未定义,但将来可能会用于在中心位置(ULA-central)注册的内部使用地址。fd00::/8正在使用中,不必在任何地方注册。该范围内的前缀是随机生成的。
不幸的是,IsIPv6SiteLocal只检查不推荐使用的原始版本:
PS C:'Users'Administrator> [System.Net.IPAddress]'fec0::'
Address :
AddressFamily : InterNetworkV6
ScopeId : 0
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : True
IPAddressToString : fec0::
它不识别ULA Central:
PS C:'Users'Administrator> [System.Net.IPAddress]'fc00::'
Address :
AddressFamily : InterNetworkV6
ScopeId : 0
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : False
IPAddressToString : fc00::
或本地分配的ULA:
PS C:'Users'Administrator> [System.Net.IPAddress]'fd00::'
Address :
AddressFamily : InterNetworkV6
ScopeId : 0
IsIPv6Multicast : False
IsIPv6LinkLocal : False
IsIPv6SiteLocal : False
IPAddressToString : fd00::
请参阅https://www.rfc-editor.org/rfc/rfc4193了解更多详细信息。
对于链接本地和站点本地:
http://www.tcpipguide.com/free/t_IPv6SpecialAddressesReservedPrivateLinkLocalSiteLo-3.htm
对于链接本地、站点本地和多播(以及其他):
http://technet.microsoft.com/en-us/library/cc757359(WS.10).aspx
对于teredo:
http://technet.microsoft.com/en-us/library/bb457011.aspx
HTH