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

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

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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 6969精品视频在线观看 | 182免费在线观看 | 亚洲国产精品线在线观看 | 夫妇野外交换激情 | 紧身牛仔裤美女被啪啪久久网 | 女人肮脏的交易中文字幕未删减版 | 精品久久久久久久国产潘金莲 | 日韩一级片免费观看 | 67194在线免费观看 | 污漫日本E同人 | 免费老外的毛片清高 | 1769亚洲欧美资源站 | 男人狂躁女人下面的视频免费 | 亚洲天堂男人的天堂 | 精品视频一区二区三区免费 | 久久www免费人成_看片高清 | 2019中文字幕在线视频 | 国产大秀视频一区二区三区 | 天天做天天爱天天综合网 | 午夜视频在线网站 | 日本高清视频在线观看 | 免费观看无遮挡www的小视频 | 4hu影院永久在线播放 | 久久国产精品高清一区二区三区 | 美女跪式抽搐gif动态图 | 亚洲精品久久久992KVTV | 大乳孕妇一级毛片 | gaygayas男男免费中国 | 精品久久久久亚洲 | 热巴在公交车h文 | 国产欧美久久一区二区 | 久久国产主播福利在线 | 久久久久激情免费观看 | 我的妹妹最近有点怪免费播放 | 国产在线观看a | 久久伊人影视 | 四虎在线免费 | 九九精品影院 | 亚洲福利天堂 | 日本孕妇大胆孕交 | 超兴奋朋友的中文字幕下 |