0

目前我有一个 ac 函数,它接受一个 ip 地址和子网掩码并检查给定的 ipv4 是否是私有/公共的。

它通过以下逻辑来匹配子网:

(local ipv4 address && local subnetmask) == (given ipv4 && given subnetmask)

ipv6可以写什么逻辑?我可以编写一个函数来接收 IP 和子网前缀。我可以获得本地子网前缀吗?

4

1 回答 1

0

我为了确定两个主机是否在同一个子网上同时获取它们的地址和前缀长度(子网掩码)。

如果前缀长度不同,则它们不在同一个网络上。

如果前缀长度相同,则取长度(很可能是 64,所以我们假设)并将两个地址的前 64 位相互比较。如果它们相同,则它们都在同一网络上。

它与您对 IPv4 所做的基本相同,只是将不属于前缀的位设置为前缀。对于 128 个地址,尽管将其实现为一次比较 4 位(比较十六进制表示法)或一次比较 8 位(比较解析的字节)的循环可能会更容易。

于 2016-06-04T08:32:53.713 回答