发新帖

[Java] Java 获取局域网IP地址、MAC地址、计算机名称

零下一度 2018-6-4 1385
import java.net.InetAddress; 
import java.net.NetworkInterface; 
import java.net.SocketException; 
import java.net.UnknownHostException; 
 
/* 
 * 物理地址是48位,别和ipv6搞错了 
 */ 
public class GetIp {
  
    /** 
     * @param args 
     * @throws UnknownHostException  
     * @throws SocketException  
     */ 
    public static void main(String[] args) throws UnknownHostException, SocketException {
 
        // TODO Auto-generated method stub
   
        //得到IP,输出PC-201309011313/122.206.73.83 
        InetAddress ia = InetAddress.getLocalHost(); 
        System.out.println(ia); 
        getLocalMac(ia);
 
    }
      
    public static String getLocalMac(InetAddress ia) throws SocketException {
 
        // TODO Auto-generated method stub
 
        //获取网卡,获取地址 
        byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
 
        //System.out.println("mac数组长度:"+mac.length+";"+mac);
        
        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);
 
            }
 
        }
        
        String param = sb.toString().toUpperCase(); 
 
        System.out.println("本机MAC地址:"+sb.toString().toUpperCase());
        
        return param;
 
    }
}

最新回复 (0)
返回
零下一度
主题数
940
帖子数
0
注册排名
1