gpt4 book ai didi

java - 将公共(public) IP 地址与用户提供的网络掩码进行匹配

转载 作者:行者123 更新时间:2023-12-01 05:10:51 25 4
gpt4 key购买 nike

最近我在公司接到了一项任务,我必须创建一个这样的函数:

boolean addrMatch(String IP, String netMask);

这与路由无关。我们有一个网络服务将使用此功能。 IP 参数根据所有请求而变化,netMask 参数由用户提供。该函数必须告知实际的 IP 地址是否与提供的网络掩码匹配。这就像用户告诉我们的系统仅将公共(public)互联网上的请求提供给特定的 IP 地址子集,而不是全部。我的网络相关知识还很不完整,所以我对这个主题进行了深入的搜索,但我并没有走得太远。据我所知(或被告知):所有两个参数都是有效的 IP 地址或网络掩码,采用 xxx.xxx.xxx.xxx 表示法。我必须对它们进行按位与操作(显然是在将它们转换为 BitSet 或至少 byte[] 数组之后)。但我想这不是完整的算法。所以我的问题是:将 IP 地址与网络掩码匹配的正确算法是什么?

ps.:我正在使用 Java,但我需要泛型方法。

最佳答案

网络掩码只是一个位掩码。基本上,如果address & netmask != 0,则地址位于由网络掩码表示的子网中。您必须处理的实现细节是字节而不是位,并且字节数取决于您使用的是 IPv4 还是 IPv6。但这基本上是微不足道的。

关于java - 将公共(public) IP 地址与用户提供的网络掩码进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12051783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com