gpt4 book ai didi

java - 如何存储 IP 地址范围与位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:21 27 4
gpt4 key购买 nike

我有一个问题,我有 ip 地址范围

IP                                    Location
10.1.100.200- 10.1.100.800 x
10.1.101.200- 10.1.101.800 Y
10.1.102.200- 10.1.102.800 Z etc etc

现在给定一个 ip,我想找到像 10.1.101.270 这样的位置应该给 Y我不想要我尝试使用最佳算法存储和搜索它们的代码?如何解决这个问题

B+Tree?

最佳答案

使用, TreeMap<K, V> :您可以存储开始范围以映射位置。 TreeMap使用红黑树数据结构对条目进行排序。包括插入和删除在内的关键查找操作是 O(log n) .该 map 提供了两个有用的功能:

higherEntry(K key) : 返回 key-value关联最少的映射key严格大于给定键,或 null如果没有这样的 key 。

lowerEntry(K key) :返回与严格小于给定键或 null 的最大键关联的键值映射如果没有这样的 key 。

使用特定 ip 作为 key 进行搜索时, 你可以试着找到这个包含start ip-range的左右条目作为键和它们相应的位置作为值。通过搜索 key 与这些 ip 范围进行比较确定值 V (位置)。

关于java - 如何存储 IP 地址范围与位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960243/

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