0
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

4

2 に答える 2

0

例で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)
于 2012-12-03T17:54:00.443 に答える
0

ステップ1)byte[]を使用してすべてのIPアドレスを取得するInetAddress

ステップ2)すべてのbyte[]をに変換しますlong

ステップ3)ip1<構成済み<ip2

そこに行きます...

于 2012-12-03T17:41:42.403 に答える