java正则解析ip
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;
}
}
最新文章
- Information retrieval信息检索
- JDBC体会
- python爬爬(网友提供学习)
- 一个初学者的辛酸路程-socket编程-8
- ESPlatform 支持的三种群集模型 —— ESFramework通信框架 4.0 进阶(09)
- MPP 一、Greenplum 集群安装
- 服务器大量的fin_wait1 状态长时间存在原因分析-1
- redis分布式锁的几种实现方式,以及Redisson的配置和使用
- mysql学习笔记02 CRUD操作
- 英语词汇(2)fall down,fall off和fall over
- 「HNOI2016」最小公倍数 解题报告
- cordova日期插件的使用:cordova-plugin-datepicker
- [Visual Studio] 未能完成操作 不支持此接口
- redis创建集群——[ERR] Sorry, can&#39;t connect to node 192.168.X.X
- CF1082解题报告
- JDK1.8源码分析之HashMap
- 虚拟机在NAT模式下主机与宿主机的ip配置
- Linux用户态程序计时方式详解
- DDSM数据处理之PngWithOverlay 框出病灶区域
- Linux学习笔记:ctrl+z、ctrl+c、ctrl+d的区别
热门文章
- [深度学习] 经典深度学习模型及其微调(Caffe)总结
- [Python]Python调用Matlab (Pycharm版本)
- Linux 驱动像单片机一样读取一帧dmx512串口数据
- 反馈电路的Bode分析法
- 图文并茂quasar2.6+vue3+ts+vite创建项目并引入mockjs,mockjs 拦截ajax请求的原理是什么,quasar为什么要使用boot?
- antd 3.x升4.x踩坑之路~
- 【随笔记】T507 ADC SGM58031 16BIT 4Channel 调试记录
- 【学习笔记】C/C++ 设计模式 - 工厂模式(上)
- Timer的定时调度函数schedule的四种用法
- Laravel 刚创建的项目 API 无法使用 Session,是没有在Api的请求内开启Session