我有ip地址和ip范围。我已经将它们解析为这样的表示:
val patternIP(i1, i2, i3, i4)
val patternRanges(i1_1, i1_2, i1_3, i1_4, i2_1, i2_2, i2_3, i2_4)
我想比较一下,ip
是否在range
中,例如:
6.207.95.225
的范围为6.207.94.74-6.207.97.36
请问你能告诉我最实用的方法吗?
答案 0 :(得分:2)
将IP转换为数字表示形式。 之后,您的任务就是检查一个数字是否在给定边界内的范围内。
类似的东西:
case class Ipv4Address(value: Int) extends AnyVal
def apply(a: Int, b: Int, c: Int, d: Int): Ipv4Address = {
Ipv4Address((a & 0xff) << 24 | (b & 0xff) << 16 | (c & 0xff) << 8 | (d & 0xff))
}