深圳知名网站建设,win8网站模版,网站后台管理方便吗,东莞做微信小程序的公司Java编程实现遍历两个MAC地址之间所有MAC的方法 本文实例讲述了java编程实现遍历两个MAC地址之间所有MAC的方法。分享给大家供大http://家参考#xff0c;具体如下#xff1a;
在对发放的设备进行后台管理时,很多时候会用到设备MAC这个字段,它可以标识唯一一个设备。然而在数…Java编程实现遍历两个MAC地址之间所有MAC的方法 本文实例讲述了java编程实现遍历两个MAC地址之间所有MAC的方法。分享给大家供大http://家参考具体如下
在对发放的设备进行后台管理时,很多时候会用到设备MAC这个字段,它可以标识唯一一个设备。然而在数据库批量的存储MAC地址时,如果使用解析文本逐行添加的方式难免会显得操作复杂而且事先还需生成MAC地址文本。事实上MAC地址是按照十六进制逐一递增的,所以只需要给出一个区间便有可能枚举出所有MAC地址。以下是笔者封装的一个通过两个MAC地址枚举区间内所有MAC的函数。
/** 输出两个MAC区间内的所有MAC地址 */
public static void countBetweenMac(String macSSpyhDbNtart, 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 istart; 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-start1;}
/** 计算区间内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-z1;}
希望本文所述对大家Java程序设计有所帮助。