首先我在表里配置了一个ip值,可能是一个具体的ip,可能是一个ip段,例如“1.1.1.0-1.1.1.255”,也可能是带“*”的,例如“1.1.*.*”。
然后我得到登录用户ip地址,去跟表里的ip值比大小。
public boolean compare(String startIp,String endIp){ 
String startips[]=startIp.split("\\."); 
String endIps[]=endIp.split("\\."); 
for(int i=0;i<startips.length;i++){ 
if(Integer.parseInt(endIps[i])>Integer.parseInt(startips[i])){ 
flag=true; 
break; 
}else{ 
if(Integer.parseInt(endIps[i])==Integer.parseInt(startips[i])){ 
continue; 
}else{ 
break; 



像这种只是单个ip比较,带“*“的我实在不知道怎么做,有高手能帮下忙吗?

解决方案 »

  1.   

    你是想做个限制ip访问的功能吧
    假如你的ip是1.1.1.123,
    你设置可以访问ip段如果是这种形式1.1.1.0-1.1.1.255
    先判断前三位,若相同再比较后面大小
    如果是1.1.*.*这种的,就直接判断前面的是否相同
      

  2.   


    String ip = "1.1.1.*";
    String myip = "1.1.1.123";
    if(ip != null && ip.indexOf(".*") != -1){
    if(myip != null && myip.indexOf(ip.substring(0, ip.indexOf(".*"))) != -1){
    return true;
    }
    }else{
    //1.1.1.0-1.1.1.255
    }