- 浏览: 449126 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 28057Mapper中多参数查 ... -
Java的logger打印异常的堆栈信息
2012-11-28 10:25 13514在java开发中,logger打印错误日志是最 ... -
Java关于split 处理空串以及截取最大数。
2012-07-19 20:50 7544java的String类中有个split方法, ... -
Java中关于List 与对象的关系
2012-05-30 16:32 1433在开发中,List 是经常被使用到的对象,Ar ... -
JAVA数据统计文件的导出和导入、数据库一键备份还原。
2012-05-07 18:15 2894看标题感觉像是两个完全不同的东西,为什么要写到 ... -
Java中getResourceAsStream的用法
2012-03-01 11:35 969全文无损转载:http://www.cnblogs.com/j ... -
JAVA递归方法
2012-02-17 14:26 0根据ParentId查询出所有子渠道Id ... -
JAVA写一个方法,判断该数是否为回数。
2012-02-02 21:06 3301数学上:一般的,一个自然数,如果该自然数从左向右读 ... -
Java源码打Jar包的两种方式.
2011-10-11 10:42 2162总结起来,eclipse下打包有2种方式。 1) ... -
Java中使用JSONObject对象必备
2011-08-22 11:05 1198JSON 即 JavaScript Object Natati ... -
java中使用dom简单轻便解析XML串.
2011-07-20 17:51 867java中使用dom解析简单的xml文件,只是 ... -
Java大批量导出数据,格式可以为xml或excel.
2011-06-18 11:20 6313最近项目中用到大数据量导出功能.不能确定到底有 ... -
Java中离线并发与锁机制。
2011-06-09 18:10 1415离线并发的来源 ... -
Java非常简单的Ajax使用.第一个Ajax程序
2011-06-04 17:38 2510查询某个表某条记录的时候,只能查出表的ID,不能直接显示NAM ... -
Java中判断非空对象.
2011-06-01 11:17 12873Java中经常会遇到判断非空的时候. 有的时候判断了非空但是还 ... -
Java中关于三目运算符理解和简单应用.
2011-05-26 11:08 24434名词解释 三目运算符: <表达式1>?<表达 ... -
Java实现真分页.自己领悟.
2011-05-25 17:17 2319oracle+java实现的真分页.每一页数据都是一次查询. ... -
Java中有两种实现多线程的方式以及两种方式之间的区别
2011-05-24 10:47 17365看到一个面试题.问两种 ... -
JAVA中简单调用MD5算法进行加密.
2011-03-19 09:39 6142加密算法简单代码.引入两个包.无需知道MD5源码. packa ... -
java-上传包 commons-fileupload-1.2.jar处理上传文件
2011-03-09 10:12 1342java commons-fileupload-1.2.jar ...
相关推荐
java获取不同操作系统的名称以及mac地址工具类,例如:windows,Linux,Unix等
java通过正则表达式匹配获取MAC(支持windows和Linux)
java 读取 各平台 服务器硬件信息(windowx+linux+Mac OS) 案例............。
用Java 获取 Linux操作系统下的HardID mac 信息 和java 获取 window操作系统下的 HardID mac IP osName 。。。等信息!希望能给需要的人提供帮助!
获取当前操作系统名称. return 操作系统名称 例如:windows,Linux,Unix等.
java获取系统 os.name java系统名称 System使用 系统工具类 自己封装的Util类,功能强大,原理简单。 初学者可以下载下来进行学习。可以判断mac、linux、window等等系统。如win7,win8,win2003,linux,mac等。 如有不...
windows下获取本地连接的mac Linux 获取eth0 的mac 类中有方法可以获取服务器的真实Ip地址,Linux的不是127.0.0.1
Sigar有C,C#,Java和Perl API,java版的API为sigar.jar sigar.jar的底层是用C语言编写的,它通过本地方法来调用操作系统API来获取系统相关数据。Windows操作系统下Sigar.jar 依赖sigar-amd64-winnt.dll或sigar-x86-...
wsdl2java源码此源代码基于之前可从以下位置获得的示例 JAVA 代码 它使用 STS 1.2 SHA1 服务与 3PT 一起工作。 USI v3 服务 USI v4 服务 STS 服务或 STS服务 M2M 凭证(取代 AUSkey 设备凭证) 或者,请参阅下面的 ...
我们的SQLiteJDBC库不需要配置,因为主要操作系统的本机库,包括Windows,Mac OS X,Linux等,被组装成一个JAR(Java Archive)文件。用法非常简单;下载我们的 sqlite-jdbc 库,然后将该库(JAR 文件)附加到您的类...
java解析apk文件,获取apk包名,项目名,版本号,图标等等 mac,linux,windows都可用 mac,linux 使用aapt工具 windows使用aapt.exe
下载从我们的下载适用于Mac,Windows和Linux的tabula-java jar版本,其中包括所有依赖项。使用范例tabula-java提供了一个命令行应用程序: $ java -jar target/tabula-1.0.2-jar-with-dependencies.jar --helpusage:...
Sigar有C,C#,Java和Perl API,java版的API为sigar.jar sigar.jar的底层是用C语言编写的,它通过本地方法来调用操作系统API来获取系统相关数据。 注意:Sigar为不同平台提供了不同的库文件.典型的: windows平台:...
根据Luhmann的Zettelkasten-适用于Windows,Mac OS X和Linux,单击按钮可开始OS X的下载。欢迎使用计算机的Zettelkasten主页(滑动盒,文件卡系统)。该程序基于Niklas Luhmann著名的Zettelkasten的工作原理。撰写...
即使可以在Linux或Mac下引用此库; 这显然是行不通的。 该自述文件适用于该库的版本2。 请检查V1分支以获取较早的自述文件。 如何获得 该库可在以NuGet包的。 帮我资助我自己的死亡之星 - 或者 - 您总是可以...
MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一。MySQL所使用的SQL语言是用于访问数据库的最常用标准化...除了LAMP之外,用于Solaris、Windows和Mac上的网站构架也分别被称为SAMP、WAMP和MAMP。
java获取不同系统的mac地址。比如linux系统,windows系统(xp系统,win7系统等)
这些平台包括:Linux, Windows, Solaris, AIX, HP-UX, FreeBSD and Mac OSX.Sigar有C,C#,Java和Perl API,java版的API为sigar.jar sigar.jar的底层是用C语言编写的,它通过本地方法来调用操作系统API来获取系统...
Another-Redis-Desktop-Manager是更快、更好、更稳定的Redis桌面(GUI)管理客户端,这里提供的是Windows-1.4.8的版本。 它还有Mac、Linux的版本,可在《说明.txt》中获取其他版本的下载链接。
对于Linux,macOS和Windows,您可以从获取二进制文件。 基于ARM的Mac用户:请注意,Pixel Wheels目前无法在基于ARM的Mac上运行。 当就绪时,此问题将得到修复。 对于Android,您可以从或安装Pixel Wheels。 大师...