判断一个IP是否在某个IP段内 各位有没有一个好的算法,判断一个IP是否在某个IP段内。谢谢各位了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那你把ip读取过来啊,这样就可以去判断了,我做过一个,判断ip是否在某个ip段里面的用的是在JSP用request.getRemoteAddr()获得请求来自什么地方然后和放在数据库里面的ip段范围进行比较 我有好算法,不过还算是商业机密。能具体说一下“判断一个IP是否在某个IP段内”吗?如果符合情况,多多加分私下给你。 public class IP { public static void main(String[] args) { String current = "192.168.111.11"; String start="192.168.0.0"; String end="192.168.254.254"; IP ip=new IP(); if(ip.betweenIP(start,end,current)){ System.out.println(current+"在"+start+"-"+end+"之间"); }else{ System.out.println(current+"不在"+start+"-"+end+"之间"); } } public boolean betweenIP(String start,String end,String current){ boolean result=false; start = start.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3"); start = start.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3"); start = start.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); start = start.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); end = end.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3"); end = end.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3"); end = end.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); end = end.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); current = current.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3"); current = current.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3"); current = current.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); current = current.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); if((current.compareTo(start)>=0) && (current.compareTo(end)<=0)){ result=true; } return result; }} 把ip转成long型如192.168.0.1转192168000001比较大小就行了 java编程思想第四版中文版有PDF的么? 如何一次性给交互式命令行程序输入,然后逐步读入 byte[] -> String -> byte 开公司,创业,请各位兄弟姐妹给公司赐个名字。 Java与MySQL写的信息管理系统如何移植? 如何在JBuilder9中导入已编译好的包 我从网上下载了包ftp.jar,classpath里也设置了,可就是不能调用 为什麽jtable种的数据项的名称没有,就是没有tableheader 散分的小问题2 关于数组拷贝性能比较的问题,求大神指导 一个java线形查找的例子 急!数据库连接池的问题
我做过一个,判断ip是否在某个ip段里面的
用的是在JSP用request.getRemoteAddr()获得请求来自什么地方
然后和放在数据库里面的ip段范围进行比较
能具体说一下“判断一个IP是否在某个IP段内”吗?
如果符合情况,多多加分私下给你。
public static void main(String[] args) {
String current = "192.168.111.11";
String start="192.168.0.0";
String end="192.168.254.254"; IP ip=new IP(); if(ip.betweenIP(start,end,current)){
System.out.println(current+"在"+start+"-"+end+"之间");
}else{
System.out.println(current+"不在"+start+"-"+end+"之间");
}
} public boolean betweenIP(String start,String end,String current){
boolean result=false; start = start.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3");
start = start.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3");
start = start.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3");
start = start.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); end = end.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3");
end = end.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3");
end = end.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3");
end = end.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); current = current.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3");
current = current.replaceAll("(^|\\.)(\\d)(\\.|$)", "$100$2$3");
current = current.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3");
current = current.replaceAll("(^|\\.)(\\d{2})(\\.|$)", "$10$2$3"); if((current.compareTo(start)>=0) && (current.compareTo(end)<=0)){
result=true;
}
return result;
}
}
比较大小就行了