【发布时间】:2019-11-07 14:34:49
【问题描述】:
在代表 IPv6 地址的 IPAddress 实例上调用 ToString() 方法,我得到一些在地址后带有百分号的文本。这是not documented。什么意思?
返回值如下:fe80::1538:3f6c:a202:3af7%3
【问题讨论】:
标签: c# .net networking
在代表 IPv6 地址的 IPAddress 实例上调用 ToString() 方法,我得到一些在地址后带有百分号的文本。这是not documented。什么意思?
返回值如下:fe80::1538:3f6c:a202:3af7%3
【问题讨论】:
标签: c# .net networking
你的是Scoped literal IPv6 address,
在维基百科页面中按 % 字符搜索: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
【讨论】:
它表示一个非零的scope Id。实际范围 ID 如下。
【讨论】: