【发布时间】:2010-02-16 15:17:36
【问题描述】:
这是场景...我有一个子网表。 (见下文)我有一个 IP 地址。我想根据表中的查找找出 ip 地址属于哪个子网。然后,该关联将用于确定用户所在的位置。这是一个私有网络空间,因此标准的互联网到位置查找将不适用。最好的方法是什么?我是否需要将 IP 地址分解为数字部分并与所有子网进行按位比较。还是 Java API 中的内置工具可以让我更轻松地将 IP 地址与子网掩码进行比较?
我主要是在寻找将 ipaddress 与给定子网掩码进行比较并确定是匹配的最佳方法,或者不匹配。可选。任何有关如何以最少的操作存储列表和搜索的提示也将不胜感激。
理想情况下,我会做类似的事情:
List subnetInfo = null;
subnetInfo = findSubnet('192.168.0.1'); //value null if nothing found
....
//return null if nothing found
List findSubnet(String ipaddress) {
List subnetDetails = null;
.... code here ...
return subnetDetails;
}
表 1:子网示例列表
dk-ballerup-gen-off-v411 10.172.80.0/21 NANR-denmark-ballerup-metallbuen66-ground-first-floors-incl-dhcp-(sr14585203)
ae-dubai-ofssl-gen-off-v410 10.172.88.0/24 NANR-arab-emirates-ofssl-iflex-general-office-v410-(sr12781477)
ru-stpetersburg-gen-off-v411 10.172.89.0/24 NANR-russia-stpetersburg-general-office-incl-dhcp (bsteinba)
【问题讨论】: