MAC地址生成器(可带跳数)
效率好,10万个只需要15毫秒左右,支持跳数生成
可用该方法生成34进制,26进制等数
跳数为0时为顺序生成,
跳数为1时,则跳过一个再生成,如frontMac为00:00:00:00:00:01 ,skipNum = 1,则生成的mac为00:00:00:00:00:03
/*** 自行去掉日志打印会更快* @param startMac 开始的mac* @param skipNum 跳数* @param howMany 生成多少个*/private static void generateMacs(String startMac,int skipNum,int howMany){long startTime = System.currentTimeMillis();StringBuilder stringBuilder = new StringBuilder();stringBuilder.append(startMac).append("\n");String newMac ;String oldMac = startMac;for(int i = 0; i< howMany; i++){newMac = generateMacsAddress(oldMac,skipNum);stringBuilder.append(newMac).append("\n");oldMac = newMac;}long usedTime = System.currentTimeMillis() - startTime;System.out.println(stringBuilder);System.out.println("用时 : "+usedTime + " ms");}
代码分开写时因为下面的方法其他地方也可以用到(例如每增加一个mac,就去读U盘的文件),分开写可以物尽其用
/*** mac生成器* @param frontMac 前置mac,根据前置mac生成下一个mac地址* @param skipNum 跳数,每跳几个mac生成,跳数为0时为顺序生成,* 跳数为1时,则跳过一个再生成,如frontMac为00:00:00:00:00:01 ,skipNum = 1,则生成的mac为00:00:00:00:00:03*/private static String generateMacsAddress(String frontMac,int skipNum){char[] arr = frontMac.toCharArray();char[] letters = new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};int remainder = skipNum + 1;for(int m = arr.length-1; m>=0; m--){if(arr[m] == ':') continue;int index = getArrIndex(arr[m],letters);index = index + remainder;if(index >= letters.length){remainder = index / letters.length;index = index % letters.length;arr[m] = letters[index];}else{arr[m] = letters[index];break;}}return String.valueOf(arr);}
private static int getArrIndex(char ch,char[] letters){int i = 0;for (char let:letters) {if(let == ch)return i;i++;}return 0;}
MAC地址生成器(可带跳数)相关推荐
- 华为数通笔记-MAC地址
MAC简介 MAC基本概念 MAC(Media Access Control)地址用来定义网络设备的位置.MAC地址由48比特长.12位的16进制数字组成,其中从左到右开始,0到23bit是厂商向IE ...
- wireshark学习笔记(MAC地址欺骗)
打开kali linux,我们可以使用kali中的macchanger软件更改我们在交换机中的MAC地址,达到隐藏我们真实MAC地址的目的. 在终端界面中输入macchanger -h可以查看macc ...
- Java随机生成Mac地址(GitHub源码下载)
生成随机 Mac 地址 这段时间做项目,涉及到虚拟机 Mac 地址生成,网上找了一些 Java 随机生成 Mac 地址的代码,大多都是从 {'0', '1', '2', '3', '4', '5', ...
- 通信管理员(一)居于MAC地址的网络通信
通信管理员(一)居于MAC地址的网络通信 文章目录 前言 一.居于MAC的网络通信的互联网物理地址PA分配 二.路由器和终端设备(主机) 总结 前言 没有办法,这将是一场持久战,要劳逸结合.到处游玩( ...
- java发送邮件,带跳转链接地址(包含遇见的坑)
java发送邮件带url.带html .带跳转页面 ①创建密码验证器类(不知道干啥用的) package com.mail.test;import javax.mail.Authenticator; ...
- Mac地址自动生成器核心处理类
1.更新MAC地址 将注册表中的键值添加上MAC地址 2.重新连接网络 试过了3个方法: ManagementClass最新提供了Disable,Enable方法,但只支持Vista操作系统 ...
- 003A-设备连接方式、以太帧类型、mac地址
文章目录 1.模拟器安装 2.设备连接方式 ①.console连接方式 ②.telnet明文方式 3.以太帧 ①.2种类型的帧格式 ②.以太2帧格式 ③.802.3帧格式 4.mac地址 ①.mac地 ...
- 计网链路层mac地址和ip地址缺一不可
在学习之途有个疑问,为什么要分链路层和网络层,链路层的帧还要包裹网络层的数据包,这难道不是既麻烦又浪费时间吗?随着这个疑问往下继续深究. 1.链路层中 我们知道链路层是MAC地址,网络层 ...
- Mac地址怎么做到全球唯一的?
IP地址和Mac地址产生的目的是方便别人找到自己 Mac地址有点像身份证号码,而IP地址就像门牌号码.在茫茫大海中仅凭一个身份证号码找到一颗别样的沙粒很难,但如果先找到具体的沙滩,沙滩划分很小的网格片 ...
- cisco 2960 VLAN MAC_华为网络初级工程师快速掌握基于MAC地址的VLAN划分实用收藏
点上方蓝字关注公众号 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 HCIA DATCOM基础入门技术基于MAC地址的VLAN划分 基于mac 地址VLAN划分方式,是一种动态的VLA ...
最新文章
- Nature综述 | 种内多样性:解释微生物组中的菌株
- 安装VMwareTools后虚拟机中的鼠标滚轮无法使用解决办法
- 前端rem单位的正确使用姿势(转)
- netcore命令行部署|跨域问题
- mysql groupby 日期_sql 语言 groupBy 分组统计时间段解决方案
- python能进行切片操作的数据类型可以是_Python新手学习基础之数据类型——字符串的切片截取...
- centos7安装tomcat8.5.46版本碰到的问题
- 顶会论文轮番炸场,本周哪些论文最值得读?
- 枚举算法:最小连续n个合数。试求出最小的连续n个合数(其中n是键盘输入的任意正整数)。
- centos环境下安装redis
- 【java】计算 list 中每一行的合计值
- 手机APP脚本录制(LoadRunner 12)
- Delphi2007,XE2 调用GetVersionEx在Win10下为6.1的原因及解决方法
- nvidia控制面板点了没反应win7_win7 nvidia控制面板没反应打不开 解决办法
- 各省份国内、入境旅游人数 (2007-2018年)
- Python包:包的概念、2种建立包方式、包的使用(代码 + 图文)
- 专门查英语单词的软件_查英语单词的工具
- GBase 8s 编写使用UDR(C/Java)
- js限制input的输入字符的长度,区分中英文
- 细化(thinning)
热门文章
- 计算机导论课程设计总结,大学计算机导论实践课程设计报告.doc
- 数据清洗Chap4——dataframe操作
- vue数据未加载完成前显示loading遮罩
- 关于“无法从传输连接中读取数据: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”错误的解决方法之一
- eclipse安装SVN插件
- python将经纬度标注在地图上_Python 给定的经纬度标注在地图上的实现方法
- Java常用框架面试题
- 图元变形lisp源码_CAD lisp 实用小程序(源代码)
- 嵌入式软件开发是什么?
- python生成条形码和二维码