您的位置:首页 > 其它

比较ip是否在两个ip范围之间

2017-08-31 23:50 113 查看
package com.example;

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.util.Scanner;

public class test {

public static void main(String[] args) throws UnknownHostException {
IpCount[] ipCounts= new IpCount[5];
boolean flag=false;
test test = new test();
ipCounts[0]=new IpCount(1,"192.168.0.1","192.168.0.20");
ipCounts[1]=new IpCount(2,"192.168.0.20","192.168.0.30");
ipCounts[2]=new IpCount(3,"192.168.1.0","192.168.10.1");
ipCounts[3]=new IpCount(4,"192.168.1.100","192.168.1.101");
ipCounts[4]=new IpCount(5,"192.168.0.1","192.168.0.101");
Scanner scanner = new Scanner(System.in);
String st = scanner.nextLine();
for (int i = 0; i < ipCounts.length; i++) {
long startIp = ipTolong(InetAddress.getByName(ipCounts[i].getStart()));
long endIp = ipTolong(InetAddress.getByName(ipCounts[i].getEnd()));
long ipcheck = ipTolong(InetAddress.getByName(st));

             if (ipcheck >startIp && ipcheck < endIp) {

            flag =true;
break;

} else {
flag =false;
}
}
if (flag==true) {
System.out.println(1);
}else {
System.out.println("-1");
}
}
public static long ipTolong(InetAddress ip){
long result = 0;
byte[] ipAdds=ip.getAddress();
for (byte b : ipAdds) {
result <<= 8;
result |= b&0xff;
}
return result;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: