利用Java获取本机网卡的MAC地址
来源:互联网 发布:归来。知乎 编辑:程序博客网 时间:2024/04/28 23:39
软件项目或者产品有时候会用到本机网卡的物理MAC地址,例如结合MAC地址进行登录验证等等,当然这种项目一般在局域网内运行,能相对提高系统的安全性。
下面列出了java读取MAC地址的工具方法,可以读取windows和非windows操作系统(linux,unix)下的MAC地址。如果你的操作系统很特殊的话,可以对方法进行扩充,原理类似的。
/* * Created on 2005-6-5 * Author stephen * Email zhoujianqiang AT gmail DOT com * CopyRight(C)2005-2008 , All rights reserved. */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * 与系统相关的一些常用工具方法. * * @author stephen * @version 1.0.0 */ public class SystemTool { /** * 获取当前操作系统名称. * return 操作系统名称 例如:windows xp,linux 等. */ public static String getOSName() { return System.getProperty("os.name").toLowerCase(); } /** * 获取unix网卡的mac地址. * 非windows的系统默认调用本方法获取.如果有特殊系统请继续扩充新的取mac地址方法. * @return mac地址 */ public static String getUnixMACAddress() { String mac = null; BufferedReader bufferedReader = null; Process process = null; try { process = Runtime.getRuntime().exec("ifconfig eth0");// linux下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息 bufferedReader = new BufferedReader(new InputStreamReader(process .getInputStream())); String line = null; int index = -1; while ((line = bufferedReader.readLine()) != null) { index = line.toLowerCase().indexOf("hwaddr");// 寻找标示字符串[hwaddr] if (index >= 0) {// 找到了 mac = line.substring(index +"hwaddr".length()+ 1).trim();// 取出mac地址并去除2边空格 break; } } } catch (IOException e) { e.printStackTrace(); } finally { try { if (bufferedReader != null) { bufferedReader.close(); } } catch (IOException e1) { e1.printStackTrace(); } bufferedReader = null; process = null; } return mac; } /** * 获取widnows网卡的mac地址. * @return mac地址 */ public static String getWindowsMACAddress() { String mac = null; BufferedReader bufferedReader = null; Process process = null; try { process = Runtime.getRuntime().exec("ipconfig /all");// windows下的命令,显示信息中包含有mac地址信息 bufferedReader = new BufferedReader(new InputStreamReader(process .getInputStream())); String line = null; int index = -1; while ((line = bufferedReader.readLine()) != null) { index = line.toLowerCase().indexOf("physical address");// 寻找标示字符串[physical address] if (index >= 0) {// 找到了 index = line.indexOf(":");// 寻找":"的位置 if (index>=0) { mac = line.substring(index + 1).trim();// 取出mac地址并去除2边空格 } break; } } } catch (IOException e) { e.printStackTrace(); } finally { try { if (bufferedReader != null) { bufferedReader.close(); } } catch (IOException e1) { e1.printStackTrace(); } bufferedReader = null; process = null; } return mac; } /** * 测试用的main方法. * * @param argc * 运行参数. */ public static void main(String[] argc) { String os = getOSName(); System.out.println(os); if(os.startsWith("windows")){ //本地是windows String mac = getWindowsMACAddress(); System.out.println(mac); }else{ //本地是非windows系统 一般就是unix String mac = getUnixMACAddress(); System.out.println(mac); } } }
0 0
- 利用Java获取本机网卡的MAC地址
- java 获取本机的所有网卡的Mac地址
- java获取本机网卡的MAC地址
- java获取本机网卡的MAC地址
- 获取本机网卡的MAC地址?
- 获取本机正在使用的网卡的MAC地址
- PHP获取本机网卡的MAC地址
- Python获取本机所有网卡的MAC地址
- jva 获取本机正在使用的网卡Mac地址
- Java常用工具类——获取本机正在使用的网卡的MAC地址
- Java获取本机的mac地址
- 利用ioctl获取本机指定设备的MAC地址
- JAVA获取本机网卡IP地址
- java获取本机的IP地址和mac地址
- java获取网卡的mac地址
- java获取网卡的mac地址
- C#获取本机网卡MAC地址【源代码】
- VB获取本机网卡类型、IP、MAC地址
- Win7下安装配置tomcat,java运行环境
- C++箴言:必须返回对象时别返回引用
- 6.0 Introduction (Concurrency)
- Codeforces Round #220 (Div. 2)
- MongoDB组合索引的优化
- 利用Java获取本机网卡的MAC地址
- Joomla安装示范数据,永远安装不完的解决方法
- Nova如何配置虚拟机使用Spice+QXL ?
- C#WinForm 使用StreamWriter导出数据成Excel文件。
- PHP 真正多线程的使用
- gdb 打印字符串的全部内容
- Android之向中国天气网发送GET请求获取JSON数据实例
- 菜鸟之学习STM32(一)暂停C51的复习,开始学习STM32
- 浅谈千万级PV/IP规模高性能高并发网站架构