java 比较某个IP是否在某段IP区间之间
2014-10-29 16:32
281 查看
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Tests {
protected Logger log = LoggerFactory.getLogger(this.getClass());
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test
public void IPRangeCheck(){
log.info(">>>>>>>>>>"+isValidRange("192.168.4.1","192.168.45.112","192.168.42.25"));
}
/**
* 判断是否在之间
* @param ipStart 开始IP
* @param ipEnd
结束IP
* @param ipToCheck
需要比较IP
* @return
*/
public boolean isValidRange(String ipStart,String ipEnd,String ipToCheck){
try {
long ipLo = ipTolong(InetAddress.getByName(ipStart));
long ipHi = ipTolong(InetAddress.getByName(ipEnd));
long ipcheck = ipTolong(InetAddress.getByName(ipToCheck));
return (ipcheck >ipLo && ipcheck < ipHi);
} catch (UnknownHostException e) {
e.printStackTrace();
return false;
}
}
public long ipTolong(InetAddress ip){
long result = 0;
byte[] ipAdds=ip.getAddress();
for (byte b : ipAdds) {
result <<= 8;
result |= b&0xff;
}
return result;
}
}
import java.net.UnknownHostException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Tests {
protected Logger log = LoggerFactory.getLogger(this.getClass());
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test
public void IPRangeCheck(){
log.info(">>>>>>>>>>"+isValidRange("192.168.4.1","192.168.45.112","192.168.42.25"));
}
/**
* 判断是否在之间
* @param ipStart 开始IP
* @param ipEnd
结束IP
* @param ipToCheck
需要比较IP
* @return
*/
public boolean isValidRange(String ipStart,String ipEnd,String ipToCheck){
try {
long ipLo = ipTolong(InetAddress.getByName(ipStart));
long ipHi = ipTolong(InetAddress.getByName(ipEnd));
long ipcheck = ipTolong(InetAddress.getByName(ipToCheck));
return (ipcheck >ipLo && ipcheck < ipHi);
} catch (UnknownHostException e) {
e.printStackTrace();
return false;
}
}
public long ipTolong(InetAddress ip){
long result = 0;
byte[] ipAdds=ip.getAddress();
for (byte b : ipAdds) {
result <<= 8;
result |= b&0xff;
}
return result;
}
}
相关文章推荐
- Java 实现判断时间是否在某个区间内(如是否在23点到凌晨4点之间)
- 比较ip是否在两个ip范围之间
- 判断一个IP区间(或IP)是否被另一个IP区间所包含
- 判断一个IP区间(或IP)是否被另一个IP区间所包含
- OSI与TCP/IP, 之间比较!
- Java 判断 String 是否为合法IP
- java判断输入的字符串是否是一个IP
- java,c,c++ 语言之间基本数据类型的比较
- Java中数组之间的比较
- java,c,c++ 语言之间基本数据类型的比较
- Java 判断字符串是否为空的三种方法性能比较
- java 比较两个文件是否相同
- 判断一个IP区间(或IP)是否被另一个IP区间所包含
- java 实例变量与局部变量之间的差别,变量的比较
- flex 比较二维二元数组是否有重复(包括交集) 例如ip范围的例子
- 第2章 Java编程基础——FAQ2.21 ==和equals()都可用于比较两个操作数是否相等, 它们有什么区别吗?
- 判断一个IP区间(或IP)是否被另一个IP区间所包含
- Java和.Net 在较量中携手前进,关于2者之间的比较,几篇文章还概要性地对这2家人的世界做了介绍,是时候同时对java世界进行些了解了
- 总体拥有成本:C/C 与Java之间的比较
- Java课程设计 比较两个文件内容是否相同