关于如何高效判断一个IP是否在一个IP段中

xiaoxiao2025-12-06  10

第一步,将IP最大和最小值转换成数字,这个有相应的工具类

第二步很关键,就是用redis来存储这两个值,那么什么结构存那?我们选择用sortset,这个结构是有序队列,我们定义:

key:ipwrite

value:ip值

sort:ip数字

这样我们就存储好了最大值和最小值

第三部,我们拿到要比较的ip,首先转换成数字,然后我们用ranger(0,1)取出最大值和最小值,

zrangebyscore key min max [withscores][limit offset count]

  返回有序集合中score介于min和max之间的元素(若不想包含=请用如 zrangebyscore zsk (1 (4表示),litmit的功能类似于分页,例:zrangebyscore zsk 0 1 withscores limit 0 2返回:

  1) m5

  2) 0.5

  3) m1

  4) 1

当然如果你不知道min和max的值可以使用-inf和+inf来替代。

转载请注明原文地址: https://www.6miu.com/read-5040408.html

最新回复(0)