在表示IPv6地址的ToString()
实例上调用IPAddress
方法,我得到一些在地址后带有百分号的文本。是not documented。什么意思?
返回值如下:fe80::1538:3f6c:a202:3af7%3
答案 0 :(得分:1)
它表示一个非零的scope ID。实际的范围ID如下。
答案 1 :(得分:1)
您是Scoped literal IPv6 address
,
在Wikipedia页面中按%字符搜索:https://en.wikipedia.org/wiki/IPv6_address
在此处粘贴相关段落:
范围内的文字IPv6地址
对于非全局范围的地址(如下所述),以及 特别是对于本地链接地址,网络的选择 发送数据包的接口可能取决于地址所在的区域 属于:相同的地址可能在不同区域中有效,并且 由每个区域中的不同主机使用。即使单身 地址未在不同区域中使用,地址前缀为 这些区域中的地址可能仍然相同,这使得 操作系统无法根据 路由表中的信息(基于前缀)。
为了解决文本地址中的歧义,请使用区域索引 必须添加到地址后,两者之间用百分号分隔 (%)。[10]区域索引的语法取决于实现 字符串,尽管必须普遍支持数字区域索引 好。链接本地地址
fe80 :: 1ff:fe23:4567:890a可以表示为
fe80 :: 1ff:fe23:4567:890a%eth2或:
fe80 :: 1ff:fe23:4567:890a%3