Java中的奇怪符号用Java表示

Ant*_*nio 2 java network-programming ipv6

当我调用方法时NetworkInterface.getInetAddresses(),我得到以下字符串:

"fe80:0:0:0:f06c:31b8:cd17:5a44%5"
Run Code Online (Sandbox Code Playgroud)

我想知道这%5意味着什么?没有这个可能会有IPv6地址%5吗?

Adr*_*ián 6

它在这里解释:

Inet6Adress - 格式

指定scope_id的一般格式如下:

*IPv6-address%scope_id*
Run Code Online (Sandbox Code Playgroud)

IPv6地址是如上所述的文字IPv6地址.该 scope_id指的是本地系统上的一个接口,它可以通过两种方式来指定.

  1. 作为数字标识符.这必须是一个正整数,用于标识系统所理解的特定接口和范围.通常,数值可以通过系统上的管理工具确定.每个接口可以有多个值,每个范围一个.如果未指定范围,则使用的默认值为零.

  2. 作为一个字符串.这必须是NetworkInterface.getName()为相关特定接口返回的确切字符串.以这种方式创建Inet6Address时,通过查询相关的NetworkInterface在创建对象时确定数字scope-id.

另请注意,可以从NetworkInterface类返回的Inet6Address实例中检索数字scope_id.这可用于查找系统上配置的当前范围ID.