java 生成mac地址

main方法实现生成mac地址。
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger;

public class Main {
	public static void main(String[] args) {
		// 生成文件名
		String filePath = "d://macaddr.txt";
		File file = new File(filePath);

		if (file.exists()) {
			file.delete();
		}

		// 设定mac地址起始地址, 以及本次生成的数量
		printMac(filePath, "00:70:A4:00:00:00", 99999);
	}

	/**
	 * 生成mac地址核心逻辑
	 * 
	 * @Description:
	 * @author 666
	 * @date Apr 4, 2018
	 * @param filePath
	 * @param start
	 * @param count
	 */
	private static void printMac(String filePath, String start, int count) {
		start = start.replaceAll(":", "");
		try {
			File file = new File(filePath);
			FileWriter writer = new FileWriter(file, true);
			BigInteger num = new BigInteger(start, 16);
			BigInteger addNum = new BigInteger("1");
			String result = "";
			for (int i = 0; i < count; i++) {
				result = num.toString(16).toUpperCase();
				for (int j = 12 - result.length(); j > 0; j--) {
					result = "0" + result;
				}
				writer.write(getMacAdr(result) + "\n");

				num = num.add(addNum);
			}
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 组成mac地址
	 * 
	 * @Description:
	 * @author 666
	 * @date Apr 4, 2018
	 * @param str
	 * @return
	 */
	private static String getMacAdr(String str) {
		StringBuilder result = new StringBuilder("");
		for (int i = 1; i <= 12; i++) {
			result.append(str.charAt(i - 1));
			if (i % 2 == 0) {
				result.append(":");
			}
		}
		return result.substring(0, 17);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值