获取系统mac地址,及地址


package com.btlh.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


/**
* 类功能说明 TODO:获取物理地址
* 类修改者
* 修改日期
* 修改说明
* <p>Title: GetMacAddressUtil.java</p>
* <p>Description:XXXXX</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company:XXXXX有限公司</p>
* @author lsy xxxxxxx
* @date 2013-5-2 下午1:48:52
* @version V1.0
*/

public class GetMacAddressUtil
{
/**
* 获取当前操作系统名称.
* return 操作系统名称 例如:windows,Linux,Unix等.
*/
public static String getOSName()
{
return System.getProperty("os.name").toLowerCase();
}

/**
* 获取Unix网卡的mac地址.
* @return mac地址
*/
public static String getUnixMACAddress()
{
String mac = null;
BufferedReader bufferedReader = null;
Process process = null;
try
{
/**
* Unix下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息
*/
process = Runtime.getRuntime().exec("ifconfig eth0");
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 != -1)
{
/**
* 取出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;
}

/**
* 获取Linux网卡的mac地址.
*
* @return mac地址
*/
public static String getLinuxMACAddress()
{
String mac = null;
BufferedReader bufferedReader = null;
Process process = null;
try
{
/**
* linux下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息
*/
process = Runtime.getRuntime().exec("ifconfig eth0");
bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null;
int index = -1;
while ((line = bufferedReader.readLine()) != null)
{
index = line.toLowerCase().indexOf("硬件地址");
/**
* 找到了
*/
if (index != -1)
{
/**
* 取出mac地址并去除2边空格
*/
mac = line.substring(index + 4).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)
{
/**
* 寻找标示字符串[physical address]
*/
index = line.toLowerCase().indexOf("physical address");
if (index != -1)
{
index = line.indexOf(":");
if (index != -1)
{
/**
* 取出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;
}


//WindowsCmd ="cmd.exe /c echo %NUMBER_OF_PROCESSORS%";//windows的特殊
//SolarisCmd = {"/bin/sh", "-c", "/usr/sbin/psrinfo | wc -l"};
//AIXCmd = {"/bin/sh", "-c", "/usr/sbin/lsdev -Cc processor | wc -l"};
//HPUXCmd = {"/bin/sh", "-c", "echo \"map\" | /usr/sbin/cstm | grep CPU | wc -l "};
//LinuxCmd = {"/bin/sh", "-c", "cat /proc/cpuinfo | grep ^process | wc -l"};

/**
* 测试用的main方法.
*
* @param argc
* 运行参数.
*/
public static void main(String[] argc )
{
String os = getOSName();
System.out.println(os);
if (os.startsWith("windows"))
{
String mac = getWindowsMACAddress();
System.out.println("本地是windows:" + mac);
} else if (os.startsWith("linux"))
{
String mac = getLinuxMACAddress();
System.out.println("本地是Linux系统,MAC地址是:" + mac);
} else
{
String mac = getUnixMACAddress();
System.out.println("本地是Unix系统 MAC地址是:" + mac);
}
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值