zoukankan      html  css  js  c++  java
  • java生成连续MAC地址

    有时候性能测试的时候需要用到设备的MAC地址,为避免MAC地址重复,那么就生成连续的MAC地址就不会重复了

    直接看代码吧

    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.math.BigInteger;
    import java.util.regex.Pattern;
    
    public class ConsequentMAC {
    	public static String pattern = "[0-9a-fA-F]{12}";
    	public static String patternSn = "[0-9A-Z]{18}";
    	public static  void genPatchMAC (String initialMAC,int count,String filePath) {
    		String startMAC = initialMAC.replace(":", "");
    		boolean isMatch = Pattern.matches(pattern,startMAC);
    		if(isMatch == false) {
    			System.out.println(startMAC + "初始MAC地址非法");
    			System.exit(0);
    		}
    		try {
    			File file = new File(filePath);
    			FileWriter writer = new FileWriter(file, true);
    			BigInteger remoteMAC = new BigInteger(startMAC,16);
    			BigInteger increase = new BigInteger("1");
    			String resultMAC = "";
    			for(int i=0;i<count;i++) {
    				resultMAC = remoteMAC.toString(16).toUpperCase();
    				writer.write(formatMAC(resultMAC) + "
    ");
    				remoteMAC = remoteMAC.add(increase);
    			}
    			writer.close();
    		} catch (IOException e) {			
    			e.printStackTrace();
    		}
    	}	
    	
    	private static String formatMAC(String str) {
            StringBuilder temMAC = new StringBuilder("");
            for (int i = 1; i <= 12; i++) {
            	temMAC.append(str.charAt(i - 1));
                if (i % 2 == 0) {
                	temMAC.append(":");
                }
            }
            String MAC = temMAC.substring(0, 17);
            return MAC;
        }
    
    	public static void main(String[] args) {
    		String filePath = "wifi600w.dat";
            File file = new File(filePath);
            if (file.exists()) {
                file.delete();
            }
    		genPatchMAC("70:00:00:00:00:00",6000000,filePath);
    		System.out.println("finished!");
    	}
    }
    

      

  • 相关阅读:
    几个很实用的BOM属性对象方法
    JavaScript hash
    WPF中ControlTemplate和DataTemplate的区别
    C#性能测试方法
    Lc.exe已退出,代码为-1
    C#遍历enum类型
    WPF画线问题,几千条以后就有明显的延迟了。
    WPF学习笔记(3):Path绘制命令zz
    WPF: 旋转Thumb后,DragDelta移动距离出错的解决
    在Revit中如何显示附件模块(Add Ins) 这个命令页?zz
  • 原文地址:https://www.cnblogs.com/mosicol/p/11317327.html
Copyright © 2011-2022 走看看