繁体   English   中英

如何知道给定的IPV6地址是否与本地计算机属于同一子网

[英]How to know if given IPV6 address belongs to the same subnet as local machine

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

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

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

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

我要确定两个主机是否在同一子网上,同时使用它们的地址和前缀长度(子网掩码)。

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

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

基本上,与IPv4相同,只是使比特不成为前缀。 使用128个地址,将其实现为一次循环比较一次比较4位(比较十六进制表示法)或一次比较8位(比较解析的字节)可能会更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM