Range of Ip = 10.18.2.0 to 10.18.54.42
Configured Ip = 10.18.54.40
我应该检查 ip10.18.54.40
介于10.18.2.0
to 10.18.54.42
Code 应该返回 true 因为我的 ip 介于范围之间。
Range of Ip = 10.18.2.0 to 10.18.54.42
Configured Ip = 10.18.54.40
我应该检查 ip10.18.54.40
介于10.18.2.0
to 10.18.54.42
Code 应该返回 true 因为我的 ip 介于范围之间。
您还没有在示例中提到 IP 地址是如何存储的,如果它已经是一个整数,您可以直接比较:
if(lowIP <= currentIP && currentIP <= highIP) { .... }
如果它保存在String
变量中,则必须将其拆分为整数部分并将它们组合成一个 4 字节整数。
String ip_addr = .... ;
int[] ip_parts = new int[4];
int index = 0;
for(String s : ip_addr.split(".")) {
ip_parts[index++] = Integer.parseInt(s);
}
int final_ip = ip_parts[0] << 24 | ip_parts[1] << 16 | ip_parts[2] << 8 | ip_parts[3]
例子:
ip = "192.168.0.1"
parts = [192, 168, 0, 1] (base 10)
= [1100000, 10100000, 00000000, 00000001] (base 2)
final_ip = 1100000 10100000 00000000 00000001 (base 2)
= 3231711232 (base 10)
步骤 1)byte[]
使用获取所有 IP 地址InetAddress
步骤 2) 将所有 byte[] 转换为long
步骤 3) ip1 < 已配置 < ip2
给你...