JAVA获取本机IP和Mac地址

时间:2023-03-08 17:42:49

   在项目中,时常需要获取本机的Ip或是Mac地址,进行身份和权限验证,本文就是通过java代码获取ip和Mac。

package com.svse.query;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

/***
* 获取本机的Mac地址 (物理地址) 如:58-02-E3-58-4E-E5
* @author lenovo
* @date 2019年2月20日
* description:
*/
public class TestLocalMac {

private static void getLocalMac(InetAddress ia) throws SocketException {
         //获取网卡,获取地址
         byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
      //System.out.println("mac数组长度:"+mac.length);
   StringBuffer sb = new StringBuffer("");
   for(int i=0; i<mac.length; i++) {
    if(i!=0) {
    sb.append("-");
        }
   //字节转换为整数
   int temp = mac[i]&0xff;
   String str = Integer.toHexString(temp);
   //System.out.println("每8位:"+str);
   if(str.length()==1) {
    sb.append("0"+str);
   }else {
    sb.append(str);
   }
    }
   System.out.println("本机MAC地址:"+sb.toString().toUpperCase());
}
public static void main(String[] args) throws UnknownHostException {

  //得到IP,输出PC-201309011313/122.206.73.83
  InetAddress ia = InetAddress.getLocalHost();
  String ip=ia.toString().split("/")[1];
  System.out.println(ia);
  System.out.println("IP:"+ip);
  try {
    getLocalMac(ia);
  } catch (SocketException e) {
    e.printStackTrace();
  }

 }

}

   测试结果

   JAVA获取本机IP和Mac地址