`
cydia
  • 浏览: 74466 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java获取系统IP,MAC地址

    博客分类:
  • java
阅读更多
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;
   }

}

 

分享到:
评论

相关推荐

    java 获取客户端ip mac地址

    ### Java 获取客户端 IP 和 MAC 地址 在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端...

    java获取客户端ip及mac地址

    这里提供了一个简单的示例,用于在 Windows 系统中通过 IP 地址获取 MAC 地址: ```java public String getMACAddress(String ip) { String str = ""; String macAddress = ""; try { Process p = Runtime....

    java通过ip获取mac地址的工具

    java中通过ip获取远程客户端的mac地址,支持跨平台

    java中通过request获取IP以及MAC地址.java

    获取用户请求IP地址 根据IP地址获取mac地址

    java编程实现获取服务器IP地址及MAC地址的方法

    在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...

    java中获取客户端IP MAC信息

    可以通过java获取客户端IPMAC主机名等信息。下载就能用,欢迎下载!

    Java获取本机MAC地址IP地址主机名

    Java获取本机MAC地址IP地址主机名

    java通过ip获取mac地址源代码.rar

    在Java编程语言中,获取一个特定IP地址对应的MAC(Media Access Control)地址是一项常见的网络编程任务。MAC地址是网络设备在网络层的物理地址,用于标识网络接口控制器(NIC)。在局域网(LAN)中,MAC地址是唯一...

    通过java获取远程机器mac地址

    在对网内主机进行监控时需要通过java获取远程机器的mac地址

    Java获取客户端IP及Mac地址(同网段).rar

    Java,运用了多线程内部执行,不影响其他登录验证操作。在Controller类获取客户端的IP地址的方法是:request....所以我们这里添加了条件验证,将客户端IP及Mac地址(同网段)与本地本地IP及Mac地址方法分开。

    java获取linux服务器上的IP操作

    在本文中,我们将详细介绍Java获取Linux服务器上的IP操作,包括Linux服务器上的网络接口、回环接口、获取IP地址的方法等。 Linux服务器上的网络接口 在Linux服务器上,网络接口是用来发送和接受数据包的基本设备...

    pb获取ip地址/mac地址

    标题中的"pb获取ip地址/mac地址"指的是在PowerBuilder(简称pb)环境下获取计算机的IP地址和MAC地址。PowerBuilder是一种流行的.NET和Java应用程序开发工具,尤其适合于创建数据库驱动的应用程序。在这个场景中,...

    Java 自动获取本机IP、MAC地址

    Java 自动获取本机IP和MAC地址是一项常见的需求,在网络编程和系统管理中经常会用到。这个小工具利用了Java的网络和系统API,能够帮助用户便捷地查看本机的网络配置信息。以下是对相关知识点的详细说明: 1. **Java...

    java根据本地IP获取mac地址的方法

    Java根据本地IP获取MAC地址的方法 Java根据本地IP获取MAC地址的方法是指通过Java语言获取本机或客户端的MAC地址。MAC地址是媒体访问控制地址,是网络设备的唯一标识符。在Java中,可以使用InetAddress和Network...

    get_mac_address_using_java.rar_获取IP地址_获取mac地址

    通过阅读和理解这两份代码,你可以更深入地了解Java中获取IP和MAC地址的实现细节,并将其应用到自己的项目中。在实际应用中,务必考虑到各种可能的异常情况,如网络不可达、权限不足等,并提供相应的错误处理机制。

    跨平台 获取本机IP/MAC地址,检测是否内网IP,字符串IP转换成Number地址

    本文将深入探讨如何在不同的操作系统上获取本机的IP和MAC地址,以及如何判断一个IP地址是否为内网IP,并将字符串形式的IP地址转换为数值表示。我们将主要关注以下几个知识点: 1. **跨平台获取本机IP地址**: 跨...

    跨网段获取远程主机MAC地址的方法与java实现

    ### 跨网段获取远程主机MAC地址:方法与Java实现 #### 引言与背景 在计算机网络领域,MAC地址(Media Access Control Address)作为网卡的唯一标识,扮演着关键角色,尤其是在网络通信和安全监控中。然而,传统的...

    JAVA如何获取客户端IP地址和MAC地址

    JAVA获取客户端IP地址和MAC地址 在JAVA中获取客户端的IP地址和MAC地址是非常重要的,特别是在服务器端需要记录客户端的信息时。下面我们将详细介绍如何获取客户端的IP地址和MAC地址。 一、获取客户端IP地址 在...

    通过IP获取MAC地址代码

    LINUX编程,通过IP地址获取MAC地址代码。方

    如何使用Java代码获取Android移动终端Mac地址.zip

    - 如果你的应用可以使用C/C++代码,可以通过Android NDK调用Linux系统函数`ifconfig`或`ip link show`来获取Mac地址,但这需要处理更复杂的跨平台问题。 5. **使用SystemProperties获取** - 在系统服务层面,可以...

Global site tag (gtag.js) - Google Analytics