JAVA 读取主板上指定的MAC Address

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013934107/article/details/82526388

1.Source Code:

import java.net.NetworkInterface;
import java.util.Enumeration;
import java.io.*;
import java.util.Vector;
import java.text.*;
import java.util.*;

public class GetWlanID {
    public Vector<String>Address=new Vector<String>();
    public String ReadCfg;
    public static void main(String[] args)
    {
        GetWlanID GetID=new GetWlanID();
        if(GetID.ReadCfg("Config.ini")==false)
        {
            System.out.println("Config Read Err!!");
            System.exit(1);
        }
        //System.out.println(GetID.ReadCfg);
        //GetID.ShowAllMac();
        if(GetID.Save_AllAddressText("WlanID.DAT", "Bluetooth.DAT")==true)System.exit(0);
        System.exit(1);
    }
    
    public GetWlanID()
    {
        
        try
        {
                Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
                while (enumeration.hasMoreElements()) 
                {
                    StringBuffer stringBuffer = new StringBuffer();
                    NetworkInterface networkInterface = enumeration.nextElement();
                    if (networkInterface != null)
                    {
                        byte[] bytes = networkInterface.getHardwareAddress();
                        boolean Is=false;
                        if (bytes != null)
                        {
                            for (int i = 0; i < bytes.length; i++) 
                            {
                                int tmp = bytes[i] & 0xff; // 字节转换为整数
                                String str = Integer.toHexString(tmp);
                                if (str.length() == 1)
                                {
                                    stringBuffer.append("0" + str);
                                } 
                                else 
                                {
                                    stringBuffer.append(str);
                                }
                            }
                            String mac = stringBuffer.toString().toUpperCase();
                        if(this.Address.size()>0)
                        {
                            for(int x=0;x<this.Address.size();x++)
                            {
                                if(this.Address.get(x).equals(mac))
                                {
                                    Is=true;
                                    break;
                                }
                            }
                            if(Is==false)
                                this.Address.add(mac);
                        }
                        else
                        {
                            this.Address.add(mac);
                        }
                        //System.out.println(mac);
                    }
                }
            }
        } 
        catch (Exception e)
        {
            e.printStackTrace();
            System.exit(1);
        }
    }
    
    public boolean ReadCfg(String CfgFileName)//读取配置
    {
        boolean Flag=false;
        try
        {
            BufferedReader in=new BufferedReader(new FileReader(CfgFileName));
            this.ReadCfg=in.readLine().toUpperCase();//读取配置第一行
            in.close();
            Flag=true;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            Flag=false;
        }
        return Flag;
    }
    
    public void ShowAllMac()
    {
        for(int i=0;i<Address.size();i++)
        {
            System.out.println(Address.get(i));
        }
    }
    
    public boolean Save_AllAddressText(String FileName_A,String FileName_B)//填入ID到文本中
    {
        boolean Flag=false;
        boolean IsNoReadCp=false;
        String Str1=null,Str2=null;
        for(int i=0;i<Address.size();i++)
        {
            if(IsNoReadCp)break;//如果两组ID读取完成退出循环
//            String Temp=new String(this.Address.get(i));
//            Temp=new String(Temp.substring(6));
//            System.out.println(Temp);
//            System.out.println(this.ReadCfg);
            if((this.Address.get(i).indexOf(this.ReadCfg))!=-1)//判断是否包含该字符串
            {
                if(Str1==null)
                {
                    Str1=Address.get(i);
                }
                else if(Str2==null)
                {
                    Str2=Address.get(i);
                    IsNoReadCp=true;
                }
            }
        }
        System.out.println(Str1+"\n"+Str2);
        if(IsNoReadCp==true)
        {
            if(this.SaveAddressText(FileName_A,Str1)&&this.SaveAddressText(FileName_B,Str2)) Flag=true;
        }
        return Flag;
    }
    public boolean SaveAddressText(String FileName,String Str)//采用字节流方式写文本
    {
        boolean Flag=false;
        try
        {
            BufferedWriter out=new BufferedWriter(new FileWriter(FileName,true));
            out.write(Str);
            out.close();
            Flag=true;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            Flag=false;
        }
        return Flag;
    }
}
 

2.Config File:

猜你喜欢

转载自blog.csdn.net/u013934107/article/details/82526388