Java 遍历两个MAC地址之间的所有MAC
2014-02-21 16:57
621 查看
在对发放的设备进行后台管理时,很多时候会用到设备MAC这个字段,它可以标识唯一一个设备。然而在数据库批量的存储MAC地址时,如果使用解析文本逐行添加的方式,难免会显得操作复杂,而且事先还需生成MAC地址文本。事实上MAC地址是按照十六进制逐一递增的,所以只需要给出一个区间便有可能枚举出所有MAC地址。以下是笔者封装的一个通过两个MAC地址枚举区间内所有MAC的函数。
另附计算两个MAC之间MAC中个数函数:
/** 输出两个MAC区间内的所有MAC地址 */ public static void countBetweenMac(String macStart, String macEnd){ long start = turnMacToLong(macStart); long end = turnMacToLong(macEnd); String prefix = macStart.substring(0,9); String hex = null; String suffix = null; StringBuffer sb = null; for(long i=start; i< end +1; i++){ hex = Long.toHexString(i); suffix = hex.substring(hex.length()-6); sb = new StringBuffer(suffix); sb.insert(2, ":"); sb.insert(5, ":"); System.out.println(prefix + sb.toString()); } }
/** 将MAC转换成数字 */ public static long turnMacToLong(String MAC){ String hex = MAC.replaceAll("\\:", ""); long longMac = Long.parseLong(hex, 16); return longMac; }
另附计算两个MAC之间MAC中个数函数:
/** 计算区间内MAC总数 */ public static long countMac1(String macStart, String macEnd){ String hexStart = macStart.replaceAll("\\:", ""); String hexEnd = macEnd.replaceAll("\\:", ""); long start = Long.parseLong(hexStart, 16); long end = Long.parseLong(hexEnd, 16); return end-start+1; }
/** 计算区间内MAC总数 */ public static long countMac(String macStart, String macEnd){ String[] start = macStart.split("\\:"); String[] end = macEnd.split("\\:"); int x,y,z; int a,b,c; x = Integer.parseInt(start[3],16); y = Integer.parseInt(start[4],16); z = Integer.parseInt(start[5],16); a = Integer.parseInt(end[3],16); b = Integer.parseInt(end[4],16); c = Integer.parseInt(end[5],16); return (a-x)*16*16*16 + (b-y)*16*16 + c-z+1; }
相关文章推荐
- JAVA基本数据类型转换
- Java中Map相关的快速查找算法与唯一性
- java spring jdbc配置
- 学习JavaWeb之Servlet——listener
- Spring 让 LOB 数据操作变得简单易行
- java5的静态导入import static
- Java判断字符串是否为数字(正则表达式)
- java Date Calendar 区别
- 【java performance】不要在循环体中实例化变量
- Java thread notes
- MyEclipse项目中,让修改后的Servlet文件生效方法
- 网页实现浏览器的向前,后退
- 【java performance】用'StringTokenizer'代替 'indexOf()' 和'substring()'
- spring配置datasource三种方式
- JAVA 基础知识复习
- 【Java】 第四章 异常处理 Notes learn Ma
- 【Java】 第四章 异常处理 Notes learn Ma
- 如何安装java环境
- Struts2 自定义拦截器配置和使用
- Spring JDBC模板类—org.springframework.jdbc.core.JdbcTemplate(转)