import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SystemMessageUtil {
final static Logger logger = LoggerFactory.getLogger(SystemMessageUtil.class);
/**
* 获取当前操作系统名称.
* return 操作系统名称 例如:windows xp,linux 等.
*/
public static String getOSName() {
return System.getProperty("os.name").toLowerCase();
}
/**
* <p> 方法 getLocalIp</p>
* 获取本机ip地址
* @return
*/
public static String getLocalIp() {
String localIp = null;
try {
localIp = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
logger.info("获取服务器IP地址失败!");
e.printStackTrace();
}
return localIp;
}
/**
* <p> 方法 getLocalMac</p>
* 获取本机MAC地址
* @return
*/
public static String getLocalMac() {
String os = getOSName();
String mac = null;
try {
// System.out.println(os);
if (os.startsWith("windows")) {
// 本地是windows
mac = getWindowsMACAddress();
// System.out.println(mac);
} else {
// 本地是非windows系统 一般就是unix
mac = getUnixMACAddress();
// System.out.println(mac);
}
} catch (Exception e) {
logger.info("获取服务器MAC地址失败!");
e.printStackTrace();
}
return mac;
}
/**
* 获取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;
}
}
分享到:
相关推荐
获取客户端ip地址( 这个必须从客户端传到后台): jsp页面下,很简单,request....因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换java 获取客户端ip mac地址
java中通过ip获取远程客户端的mac地址,支持跨平台
获取用户请求IP地址 根据IP地址获取mac地址
主要介绍了java编程实现获取机器IP地址及MAC地址的方法,实例分析了Java分别针对单网卡及多网卡的情况下获取服务器IP地址与MAC地址的相关技巧,需要的朋友可以参考下
可以通过java获取客户端IPMAC主机名等信息。下载就能用,欢迎下载!
Java获取本机MAC地址IP地址主机名
java获取客户端ip及mac地址方法,适合web开发者
在对网内主机进行监控时需要通过java获取远程机器的mac地址
Java,运用了多线程内部执行,不影响其他登录验证操作。在Controller类获取客户端的IP地址的方法是:request....所以我们这里添加了条件验证,将客户端IP及Mac地址(同网段)与本地本地IP及Mac地址方法分开。
java通过ip获取mac地址源代码,正在学习或研究java开发的朋友可以看看,主要实现了局域网的扫描,如果有多个IP,只匹配本IP对应的Mac
获取计算机的mac地址和ip地址,mac地址返回的是一个list,ip地址是string
LINUX编程,通过IP地址获取MAC地址代码。方
import java.net.Inet4Address; import java.net.InetAddress; import java.util.Arrays; import jpcap.*;...public static byte[] arp(InetAddress ip) throws java.io.IOException{ //发现本机器的网络接口
java获取IP地址和MAC地址。 /** * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws Exception */ public String getIpAddr(HttpServletRequest ...
得到机器的MAC,硬盘序列序列号和IP地址 public static void main(String[] args) ...{ String osName = System.getProperty("os.name"); StringBuffer systemPathBuff = new StringBuffer(""); if (osName.index...
自己写的一个小工具,方便查看本机的IP和MAC地址,如果是笔记本,可以采集到两个MAC地址。 采用的技术是Eclipse 4 RCP,算是练手。程序打包时绑定了JRE,解压后就可以运行。
主要为大家详细介绍了java根据本地IP获取mac地址的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java获取Centos7服务器网卡ip 子网掩码 默认网关 DNS 同时设置网卡 及 重启网卡参考
跨网段获取远程主机MAC地址的方法与java实现
Android获取手机ip地址及mac地址