Range of Ip = 10.18.2.0 to 10.18.54.42
Configured Ip = 10.18.54.40
IPが範囲内にあるため、コードがtrueを返す必要が10.18.54.40
ある10.18.2.0
ことを確認する必要があります。10.18.54.42
Range of Ip = 10.18.2.0 to 10.18.54.42
Configured Ip = 10.18.54.40
IPが範囲内にあるため、コードがtrueを返す必要が10.18.54.40
ある10.18.2.0
ことを確認する必要があります。10.18.54.42
例でIPアドレスがどのように格納されるかについては言及していません。すでに整数である場合は、直接比較できます。
if(lowIP <= currentIP && currentIP <= highIP) { .... }
変数に保持されているString
場合は、整数部分に分割し、それらを1つの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
そこに行きます...