Range of Ip = 10.18.2.0 to 10.18.54.42
Configured Ip = 10.18.54.40
我应该检查10.18.54.40
到10.18.2.0
之间的IP 10.18.54.42
代码应该返回true,因为我的ip位于范围之间。
答案 0 :(得分:0)
步骤1)使用byte[]
InetAddress
步骤2)将所有byte []转换为long
步骤3)ip1<配置< ip2
你去......
答案 1 :(得分:0)
您还没有提到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)