- 浏览: 454658 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
csdn_lichao:
[flash=200,200][flash=200,200][ ...
MySql数据分区操作,新增分区 -
xtxycy:
的确有一楼说这个问题,有一定几率出现重复卖的情况
Java中有两种实现多线程的方式以及两种方式之间的区别 -
superhotdong:
class ThreadTest implements Run ...
Java中有两种实现多线程的方式以及两种方式之间的区别 -
yuelangyc:
beming 写道时间过去有点长,想请教一个问题,如果我只想批 ...
Mysql中批量更新的几种方式 -
beming:
时间过去有点长,想请教一个问题,如果我只想批量更新,不插入有没 ...
Mysql中批量更新的几种方式
今天在完成任务的时候,遇到了需要对对应的MAC地址进行验证的方法,以为很简单就能过,鼓捣了半天以后才发现,我的机器是window7,查询出来是乱码,居然不给支持。没办法在网上继续找资料。终于找到了,贴上来,以备不时之需。
东西都有注释,自己看吧,
找了很多都是只支持window和linux的。windows7 因为是中文,不能用同一个方法获取。只能另想办法了
东西都有注释,自己看吧,
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.NetworkInterface; /** * 与系统相关的一些常用工具方法. * * @author lvbogun * @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 { // linux下的命令,一般取eth0作为本地主网卡 process = Runtime.getRuntime().exec("ifconfig eth0"); // 显示信息中包含有mac地址信息 bufferedReader = new BufferedReader(new InputStreamReader( process.getInputStream())); String line = null; int index = -1; while ((line = bufferedReader.readLine()) != null) { // 寻找标示字符串[hwaddr] index = line.toLowerCase().indexOf("hwaddr"); if (index >= 0) {// 找到了 // 取出mac地址并去除2边空格 mac = line.substring(index + "hwaddr".length() + 1).trim(); 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 { // windows下的命令,显示信息中包含有mac地址信息 process = Runtime.getRuntime().exec("ipconfig /all"); bufferedReader = new BufferedReader(new InputStreamReader( process.getInputStream())); String line = null; int index = -1; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); // 寻找标示字符串[physical index = line.toLowerCase().indexOf("physical address"); if (index >= 0) {// 找到了 index = line.indexOf(":");// 寻找":"的位置 if (index >= 0) { System.out.println(mac); // 取出mac地址并去除2边空格 mac = line.substring(index + 1).trim(); } break; } } } catch (IOException e) { e.printStackTrace(); } finally { try { if (bufferedReader != null) { bufferedReader.close(); } } catch (IOException e1) { e1.printStackTrace(); } bufferedReader = null; process = null; } return mac; } /** * windows 7 专用 获取MAC地址 * * @return * @throws Exception */ public static String getMACAddress() throws Exception { // 获取本地IP对象 InetAddress ia = InetAddress.getLocalHost(); // 获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。 byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress(); // 下面代码是把mac地址拼装成String StringBuffer sb = new StringBuffer(); for (int i = 0; i < mac.length; i++) { if (i != 0) { sb.append("-"); } // mac[i] & 0xFF 是为了把byte转化为正整数 String s = Integer.toHexString(mac[i] & 0xFF); sb.append(s.length() == 1 ? 0 + s : s); } // 把字符串所有小写字母改为大写成为正规的mac地址并返回 return sb.toString().toUpperCase(); } /** * 测试用的main方法. * * @param argc 运行参数. * @throws Exception */ public static void main(String[] argc) throws Exception { String os = getOSName(); System.out.println(os); if (os.equals("windows 7")) { String mac = getMACAddress(); System.out.println(mac); } else if (os.startsWith("windows")) { // 本地是windows String mac = getWindowsMACAddress(); System.out.println(mac); } else { // 本地是非windows系统 一般就是unix String mac = getUnixMACAddress(); System.out.println(mac); } } }
找了很多都是只支持window和linux的。windows7 因为是中文,不能用同一个方法获取。只能另想办法了
评论
2 楼
topbox163
2012-12-04
bufferedReader = new BufferedReader(new InputStreamReader(process
.getInputStream(),"GBK"));
.getInputStream(),"GBK"));
1 楼
railway
2012-04-10
第124行的getHardwareAddress()方法是JDK1.6才有的,有没有办法支持JDK1.5啊?:
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
发表评论
-
Mybatis的Mapper的多参数使用,list
2014-01-18 09:51 28140Mapper中多参数查 ... -
Java的logger打印异常的堆栈信息
2012-11-28 10:25 13623在java开发中,logger打印错误日志是最 ... -
Java关于split 处理空串以及截取最大数。
2012-07-19 20:50 7629java的String类中有个split方法, ... -
Java中关于List 与对象的关系
2012-05-30 16:32 1472在开发中,List 是经常被使用到的对象,Ar ... -
JAVA数据统计文件的导出和导入、数据库一键备份还原。
2012-05-07 18:15 2928看标题感觉像是两个完全不同的东西,为什么要写到 ... -
Java中getResourceAsStream的用法
2012-03-01 11:35 1003全文无损转载:http://www.cnblogs.com/j ... -
JAVA递归方法
2012-02-17 14:26 0根据ParentId查询出所有子渠道Id ... -
JAVA写一个方法,判断该数是否为回数。
2012-02-02 21:06 3332数学上:一般的,一个自然数,如果该自然数从左向右读 ... -
Java源码打Jar包的两种方式.
2011-10-11 10:42 2203总结起来,eclipse下打包有2种方式。 1) ... -
Java中使用JSONObject对象必备
2011-08-22 11:05 1229JSON 即 JavaScript Object Natati ... -
java中使用dom简单轻便解析XML串.
2011-07-20 17:51 910java中使用dom解析简单的xml文件,只是 ... -
Java大批量导出数据,格式可以为xml或excel.
2011-06-18 11:20 6362最近项目中用到大数据量导出功能.不能确定到底有 ... -
Java中离线并发与锁机制。
2011-06-09 18:10 1448离线并发的来源 ... -
Java非常简单的Ajax使用.第一个Ajax程序
2011-06-04 17:38 2763查询某个表某条记录的时候,只能查出表的ID,不能直接显示NAM ... -
Java中判断非空对象.
2011-06-01 11:17 12942Java中经常会遇到判断非空的时候. 有的时候判断了非空但是还 ... -
Java中关于三目运算符理解和简单应用.
2011-05-26 11:08 24493名词解释 三目运算符: <表达式1>?<表达 ... -
Java实现真分页.自己领悟.
2011-05-25 17:17 2360oracle+java实现的真分页.每一页数据都是一次查询. ... -
Java中有两种实现多线程的方式以及两种方式之间的区别
2011-05-24 10:47 17408看到一个面试题.问两种 ... -
JAVA中简单调用MD5算法进行加密.
2011-03-19 09:39 6179加密算法简单代码.引入两个包.无需知道MD5源码. packa ... -
java-上传包 commons-fileupload-1.2.jar处理上传文件
2011-03-09 10:12 1373java commons-fileupload-1.2.jar ...
相关推荐
今天,我们将讨论如何使用 Java 获取网卡物理地址在 Windows 和 Linux 两个操作系统中。 在 Windows 操作系统中,获取网卡物理地址可以使用 ipconfig 命令。ipconfig 命令可以显示当前计算机的网络配置信息,包括...
在本文中,我们将详细介绍Java获取Linux服务器上的IP操作,包括Linux服务器上的网络接口、回环接口、获取IP地址的方法等。 Linux服务器上的网络接口 在Linux服务器上,网络接口是用来发送和接受数据包的基本设备...
在Java编程中,读取服务器硬件信息是一项重要的任务,尤其对于跨平台的应用程序来说,能够兼容Windows、Linux和Mac OS等不同操作系统是必不可少的。本文将深入探讨如何使用Java来获取这些不同系统的硬件信息。 首先...
java获取不同操作系统的名称以及mac地址工具类,例如:windows,Linux,Unix等
### Java 获取客户端 IP 和 MAC 地址 在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端...
这里提供了一个简单的示例,用于在 Windows 系统中通过 IP 地址获取 MAC 地址: ```java public String getMACAddress(String ip) { String str = ""; String macAddress = ""; try { Process p = Runtime....
java通过正则表达式匹配获取MAC(支持windows和Linux)
本文将详细介绍如何通过Java代码获取本机网卡的MAC地址,并针对不同的操作系统(如Windows与Unix/Linux)提供相应的实现方式。 #### 1. 概述 在Java中,可以通过调用`Runtime.getRuntime().exec()`方法执行操作...
总的来说,通过合理配置Log4j,可以轻松地实现跨平台的日志管理,使得在Windows和Linux系统中日志路径保持一致,同时也方便了日志的管理和分析。在`webapp`项目中,你可以将上述配置文件添加至类路径,并在代码中...
总结,本文详细介绍了如何在Linux和Windows操作系统中,利用Java获取硬盘ID(序列号)、MAC地址以及IP地址的方法。在实际应用中,可能需要根据具体的环境和需求进行相应的调整。希望这些信息对需要获取系统信息的...
在Windows和Unix(包括Linux)系统下,获取这两种地址的方法有所不同。下面将详细介绍这两个操作系统下的实现方式以及提供的源码文件`GetMAC.java`。 ### Windows系统下获取MAC地址 在Windows系统中,可以使用`...
通过上述代码,我们实现了使用Java获取远程主机MAC地址的功能。需要注意的是,这种方法受限于操作系统的限制,并且可能存在一定的安全风险。在生产环境中部署此类功能前,建议进行充分的测试并采取适当的安全措施。
在Windows、Mac OS X(现在称为macOS)和Linux这三个主流操作系统上安装JDK8,是许多开发者进行Java编程的必备步骤。本教程将详细介绍在这三个平台上安装JDK8的步骤和注意事项。 ### Windows平台安装 1. **下载**:...
在这个场景中,我们将探讨如何使用PHP和Java这两种编程语言在Windows和Linux操作系统上获取MAC地址。 首先,我们来看PHP如何获取MAC地址。在PHP中,没有内置的函数直接提供获取MAC地址的功能,但我们可以利用`exec`...
这个压缩包文件包含了适用于Windows、Linux和Mac三种操作系统64位版本的JDK 1.8,确保了跨平台的兼容性。 Java 8在语言层面引入了一些重大改变,其中最显著的是Lambda表达式。Lambda表达式使得代码更加简洁,特别是...
总结来说,Java获取MAC地址的方法有两种:一是通过操作系统特定的命令,如`ifconfig`或`ipconfig`;二是利用Java内置的`java.net.NetworkInterface`类。选择哪种方法取决于项目需求,比如是否需要跨平台兼容,或者对...
Appium Inspector 2023.2.1是一款强大的自动化测试工具,专为移动应用程序而设计,支持Windows、Linux和Mac操作系统。这个版本的更新带来了更先进的功能和优化,以帮助开发者和测试工程师高效地进行Appium自动化测试...
本文将详细介绍如何在Windows和Linux平台上,使用免费的Java串口通信包进行开发,以及如何处理32位和64位系统的兼容性问题。 首先,Java串口通信通常依赖于RXTX库,这是一个开源项目,提供了Java访问串行端口的能力...
在Windows系统中,可以使用Winsock API,而在Linux或Mac OS中,可以利用socket库和`ifconfig`命令。对于Java开发者,可以使用`java.net.NetworkInterface`类;对于Python程序员,可以利用`socket`和`os`模块。这些...
- **Java**:使用`java.net.NetworkInterface`类,遍历所有网络接口并获取MAC地址。 3. 系统管理工具 大多数操作系统都提供了图形界面的网络设置工具,用户可以在其中查看设备的MAC地址: - **Windows**:控制...