IP网段批量生成

import java.util.StringTokenizer;
 
public class T {
 
 public T()
 {
  
  String s1= "10.1.2.0";
  String s2= "10.20.1.0";
  String temp=null;
  int i=0,j=0;
  int[] s1array = new int[4];
  int[] s2array = new int[4];
   
  String sql=null;
  boolean isexisted = false;
  int[] tmp = new int[3];
  String ipseg = null;
  
  boolean bb = true;
 
  //拆开s1,
  StringTokenizer st1 = new StringTokenizer(s1,".");
  while(st1.hasMoreElements())
  {
   i++;
   temp=st1.nextElement().toString();
   if(temp.length()>3 || temp.length()==0)//其中一段长度大于3或者等于0,则bb=false,表示非法
   {bb=false;}
   if((s1array[i-1]=Integer.parseInt(temp))>255) bb=false;//值大于255,非法
//   System.out.println(i);
  }
 
//拆开s2
  StringTokenizer st2 = new StringTokenizer(s2,".");
  while(st2.hasMoreElements())
  {
   j++;
   temp=st2.nextElement().toString();
   if(temp.length()>3 || temp.length()==0)
    {bb=false;}
   if((s2array[j-1]=Integer.parseInt(temp))>255) bb=false;
//   System.out.println(j);
  }
   
   if(s1array[0]>s2array[0])  //检查开始网段是否比结束网段大
   {
    bb=false;
   }else
   {
    if(s1array[0]==s2array[0])
    {
     if(s1array[1]>s2array[1])
     {
      bb=false;
     }else
     {
      if(s1array[1]==s2array[1])
      {
       if(s1array[2]>s2array[2])
       {
        bb=false;
       }else
       {
        if(s1array[2]==s2array[2])
       {
        if(s1array[3]>s2array[3])    bb=false;
       }
       }
      }
     }
    }
   }
   
   if(!bb||i!=4||j!=4)
   {
    
    System.out.println("输入非法");
    
   }else
   {//合法输入
    tmp[0] = s1array[0];
    tmp[1] = s1array[1];
    tmp[2] = s1array[2];
          
    while(true)
    {
     ipseg=Integer.toString(tmp[0])+"."+Integer.toString(tmp[1])+"."+Integer.toString(tmp[2])+".0";
    
     System.out.println(ipseg);
     
     if(tmp[0]==s2array[0])
     { if(tmp[1]==s2array[1])
      { if( tmp[2]==s2array[2]) break;
       else tmp[2]++;
      }
      else{
       tmp[2]++;
       if(tmp[2]==256)
        {
         tmp[2]=0;tmp[1]++;
        }
       }
     }
     else{
      tmp[2]++;
      if(tmp[2]==256) {
       tmp[2]=0; tmp[1]++;
       if(tmp[1]==256){
        tmp[1]=0;tmp[0]++;
       }
      }
     }
        
    }    
        
   }   
 

  
 }
 
 
 
 public static void main(String[] args)
 {
  new T();
  
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值