public class test {

public static void main(String[] args) {
// TODO Auto-generated method stub
String ipsearch="11.168.1.101-103/126/129/200-204";
ipAnalys(ipsearch);

}

private static List<String> ipAnalys(String ipsearch) {
String[] ips=ipsearch.split("/");
String pattern = "((25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)";

List<String> realIps=new ArrayList<String>();
String ipFrist="";
for (int i = 0; i < ips.length; i++) {
StringBuffer realip=new StringBuffer();
String ip=ips[i];
if(Pattern.matches(pattern, ip)){
realIps.add(ips[i]);
ipFrist=ips[i].substring(0,ip.lastIndexOf("."));
}else{
if(ips[i].indexOf("-")<0){
realip.append(ipFrist).append(".").append(ips[i]);
realIps.add(realip.toString());
}else{
String[] iprange=ips[i].split("-");
int start,end;
if(StringUtils.isEmpty(ipFrist)){
//说明直接是ip范围
ipFrist=ips[i].substring(0,ip.lastIndexOf("."));
start=Integer.parseInt(iprange[0].substring(ipFrist.length()+1));
end =Integer.parseInt(iprange[1]);
}else{
start=Integer.parseInt(iprange[0]);
end =Integer.parseInt(iprange[1]);

}
for (int j = start; j <= end; j++) {
realip.setLength(0);
realip.append(ipFrist).append(".").append(j);
realIps.add(realip.toString());
}
}
}
}
return realIps;
}

}

最新文章

  1. Information retrieval信息检索
  2. JDBC体会
  3. python爬爬(网友提供学习)
  4. 一个初学者的辛酸路程-socket编程-8
  5. ESPlatform 支持的三种群集模型 —— ESFramework通信框架 4.0 进阶(09)
  6. MPP 一、Greenplum 集群安装
  7. 服务器大量的fin_wait1 状态长时间存在原因分析-1
  8. redis分布式锁的几种实现方式,以及Redisson的配置和使用
  9. mysql学习笔记02 CRUD操作
  10. 英语词汇(2)fall down,fall off和fall over
  11. 「HNOI2016」最小公倍数 解题报告
  12. cordova日期插件的使用:cordova-plugin-datepicker
  13. [Visual Studio] 未能完成操作 不支持此接口
  14. redis创建集群——[ERR] Sorry, can&#39;t connect to node 192.168.X.X
  15. CF1082解题报告
  16. JDK1.8源码分析之HashMap
  17. 虚拟机在NAT模式下主机与宿主机的ip配置
  18. Linux用户态程序计时方式详解
  19. DDSM数据处理之PngWithOverlay 框出病灶区域
  20. Linux学习笔记:ctrl+z、ctrl+c、ctrl+d的区别

热门文章

  1. [深度学习] 经典深度学习模型及其微调(Caffe)总结
  2. [Python]Python调用Matlab (Pycharm版本)
  3. Linux 驱动像单片机一样读取一帧dmx512串口数据
  4. 反馈电路的Bode分析法
  5. 图文并茂quasar2.6+vue3+ts+vite创建项目并引入mockjs,mockjs 拦截ajax请求的原理是什么,quasar为什么要使用boot?
  6. antd 3.x升4.x踩坑之路~
  7. 【随笔记】T507 ADC SGM58031 16BIT 4Channel 调试记录
  8. 【学习笔记】C/C++ 设计模式 - 工厂模式(上)
  9. Timer的定时调度函数schedule的四种用法
  10. Laravel 刚创建的项目 API 无法使用 Session,是没有在Api的请求内开启Session