一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java編程實現(xiàn)遍歷兩個MAC地址之間所有MAC的方法

Java編程實現(xiàn)遍歷兩個MAC地址之間所有MAC的方法

2020-01-21 15:06luoboo525 JAVA教程

這篇文章主要介紹了Java編程實現(xiàn)遍歷兩個MAC地址之間所有MAC的方法,涉及Java針對MAC的遍歷獲取與字符串轉換相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java編程實現(xiàn)遍歷兩個MAC地址之間所有MAC的方法。分享給大家供大家參考,具體如下:

在對發(fā)放的設備進行后臺管理時,很多時候會用到設備MAC這個字段,它可以標識唯一一個設備。然而在數(shù)據(jù)庫批量的存儲MAC地址時,如果使用解析文本逐行添加的方式,難免會顯得操作復雜,而且事先還需生成MAC地址文本。事實上MAC地址是按照十六進制逐一遞增的,所以只需要給出一個區(qū)間便有可能枚舉出所有MAC地址。以下是筆者封裝的一個通過兩個MAC地址枚舉區(qū)間內所有MAC的函數(shù)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/** 輸出兩個MAC區(qū)間內的所有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轉換成數(shù)字 */
public static long turnMacToLong(String MAC){
  String hex = MAC.replaceAll("\\:", "");
  long longMac = Long.parseLong(hex, 16);
  return longMac;
}

另附計算兩個MAC之間MAC中個數(shù)函數(shù):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/** 計算區(qū)間內MAC總數(shù) */
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;
}
/** 計算區(qū)間內MAC總數(shù) */
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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品九色在线网站 | 国产亚洲精品线观看77 | 久久精品人人做人人爽97 | 四虎影视在线观看永久地址 | 欧美日韩亚洲高清不卡一区二区三区 | 国产香蕉国产精品偷在线观看 | 日本高清在线播放一区二区三区 | 国产高清免费午夜在线视频 | 欧美摸胸| 毛片一级免费 | 久久亚洲精品专区蓝色区 | 99久久99热久久精品免 | 麻豆找网服| 亚州春色| 五月性| 亚洲国产精品成人午夜在线观看 | 色婷婷久久综合中文久久一本 | 亚洲第一区在线观看 | 久久精品中文騷妇女内射 | 新版孕妇bbwbbwbbw | 国内精品伊人久久大香线焦 | 天天做天天爱天天综合网 | 亚洲国产精品一区二区首页 | 四虎影库网址 | 国产精品国产色综合色 | 亚洲男人的天堂网站 | 粉嫩高中生第一次不戴套 | 特级淫片大乳女子高清视频 | 免费网站直接进入 | 亚洲午夜久久久久久91 | 沉香如屑西瓜视频免费观看完整版 | 色欲都市 | 欧美日韩国产成人精品 | 国产区一二三四区2021 | 亚洲第一成年免费网站 | 日本aa大片在线播放免费看 | 精品国产福利片在线观看 | 日日骑夜夜骑 | uoco福利姬| 114毛片免费观看网站 | 亚洲男1069gay男猛男 |