Java获取本机MAC地址

简介: 为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网和广域网MAC,查了查可以直接用JDK的方法。          MAC可用于局域网验证,提高安全性。 import java.

         为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网和广域网MAC,查了查可以直接用JDK的方法。

         MAC可用于局域网验证,提高安全性。

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
 
/*
 * 物理地址是48位,别和ipv6搞错了
 */
public class LOCALMAC {
 
	/**
	 * @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);
	}
 
	private static void getLocalMac(InetAddress ia) throws SocketException {
		// TODO Auto-generated method stub
		//获取网卡,获取地址
		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());
	}
}

        运行结果如下:

PC-201309011313/122.206.73.83
mac数组长度:6
每8位:d0
每8位:27
每8位:88
每8位:1f
每8位:89
每8位:51
本机MAC地址:D0-27-88-1F-89-51

 

 

目录
相关文章
|
2月前
|
Java Maven
java修改当前项目的maven仓库地址为国内
修改当前项目的maven仓库地址为国内
|
1月前
|
NoSQL Java 网络安全
Redis在java(Maven)中使用,常用基本命令大全,最全Termius怎么进行端口映射(MAC系统最简单教学)
Redis在java(Maven)中使用,常用基本命令大全,最全Termius怎么进行端口映射(MAC系统最简单教学)
|
2月前
|
Java 程序员 API
全民上手大模型--ollama+langchain+通义千问零费用java+python跑通本机大模型
全民上手大模型--ollama+langchain+通义千问零费用java+python跑通本机大模型
452 0
|
2月前
|
存储 Java 编译器
Java | 如何从内存解析的角度理解“数组名实质是一个地址”?
这篇文章讨论了Java内存的简化结构以及如何解析一维和二维数组的内存分配。在Java中,内存分为栈和堆,栈存储局部变量,堆存储通过`new`关键字创建的对象和数组。方法区包含静态域和常量池。文章通过示例代码解释了一维数组的创建过程,分为声明数组、分配空间和赋值三个步骤,并提供了内存解析图。接着,介绍了二维数组的内存解析,强调二维数组是“数组的数组”,其内存结构中,外层元素存储内层数组的地址。最后,文章提到了默认初始化方式对初始值的影响,并给出了相关测试代码。
32 0
|
8月前
|
Java
java代码实现使用网络地址下载文件
java代码实现使用网络地址下载文件
114 0
|
2月前
|
Python Linux iOS开发
使用 Python 打印本机 Mac 地址
使用 Python 打印本机 Mac 地址
|
9月前
|
存储 网络协议 安全
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
96 0
|
2月前
|
监控 前端开发 Java
一套简单通用的Java后台管理系统,拿来即用,非常方便(附项目地址)
一套简单通用的Java后台管理系统,拿来即用,非常方便(附项目地址)
64 0
|
2月前
|
Java iOS开发 MacOS
macos查看本机所有java路径
macos查看本机所有java路径
42 0
|
2月前
|
Java Python
Java【代码分享 01】Java版本的NGender根据中文姓名猜测其性别及男性化/女性化程度(Python版本地址+Java版本源码+基础数据)
Java【代码分享 01】Java版本的NGender根据中文姓名猜测其性别及男性化/女性化程度(Python版本地址+Java版本源码+基础数据)
46 0