`

Java根据ip地址获取Mac地址

    博客分类:
  • java
 
阅读更多
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

public class MacUtils {

	/**
     * 根据IP地址获取mac地址
     * @param ipAddress 如:127.0.0.1
     * @return
     * @throws SocketException
     * @throws UnknownHostException
     */
    public static String getMac(String ipAddress) throws SocketException,
            UnknownHostException {
        String str = "";
        String macAddress = "";
        final String LOOPBACK_ADDRESS = "127.0.0.1";
        // 如果为127.0.0.1,则获取本地MAC地址。
        if (LOOPBACK_ADDRESS.equals(ipAddress)) {
            InetAddress inetAddress = InetAddress.getLocalHost();
            // 貌似此方法需要JDK1.6。
            byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();
            // 下面代码是把mac地址拼装成String
            StringBuilder sb = new StringBuilder();
            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地址并返回
            macAddress = sb.toString().trim().toUpperCase();
            return macAddress;
        } else {
            // 获取非本地IP的MAC地址
            try {
                //System.out.println(ipAddress);
                Process p = Runtime.getRuntime().exec("nbtstat -A " + ipAddress);
                //System.out.println("===process=="+p);
                InputStreamReader ir = new InputStreamReader(p.getInputStream());
                BufferedReader br = new BufferedReader(ir);
             
                while ((str = br.readLine()) != null) {
                    if(str.indexOf("MAC") > 1 ){
                        macAddress = str.substring(str.indexOf("MAC") + 9, str.length());
                        macAddress = macAddress.trim();
                        //System.out.println("macAddress:" + macAddress);
                        break;
                    }
                }
                p.destroy();
                br.close();
                ir.close();
            } catch (IOException ex) {
            }
            return macAddress;
        }
    }

    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());
        try {
        	System.out.println(getMac("10.10.16.170"));
		} catch (Exception e) {
			e.printStackTrace();
		}
        System.out.println(System.currentTimeMillis());
    }
    
    
}

 引用至:http://fanshuyao.iteye.com/blog/2317462

Java根据ip地址获取Mac地址

分享到:
评论

相关推荐

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

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

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

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

    java 获取客户端ip mac地址

    在实际开发中,获取客户端的IP地址是常见的需求,而获取MAC地址则较为罕见且可能存在一定的法律风险和技术难题。开发者应当根据具体的应用场景和需求来选择合适的方法。此外,在处理敏感信息时,还应遵循相关的法律...

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

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

    通过IP获取MAC地址代码

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

    java获取客户端ip及mac地址

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

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

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

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

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

    pb获取ip地址/mac地址

    网络中根据IP地址获取MAC地址,通常涉及ARP(地址解析协议)。在Windows系统中,可以使用`arp -a`命令来查询本地ARP缓存,查找对应IP的MAC地址。然而,这仅适用于同一局域网内的IP。如果目标IP不在本地网络,可能...

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

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

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

    总的来说,获取MAC地址通常比获取IP地址更为复杂,因为IP地址可以通过标准的网络API直接获取,而MAC地址涉及到更底层的网络操作。在实际开发中,如果只需要识别网络上的设备,通常使用IP地址就足够了。只有在需要...

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

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

    java中获取客户端IP MAC信息

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

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

    3. **获取MAC地址**:在Java中,直接获取MAC(物理)地址相对复杂,因为这涉及到操作系统级别的硬件信息。通常,可以通过`java.net.NetworkInterface`类来获取。首先,通过`NetworkInterface.getNetworkInterfaces()...

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

    在Controller类获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用...

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

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

    java通过SNMP协议获取交换机设备信息(如:交换机下的PC机MAC、IP、连接端口号等信息)

    本篇文章将深入探讨如何利用Java编程语言通过SNMP协议来获取交换机设备上的详细信息,包括PC机的MAC地址、IP地址以及连接的端口号。 首先,SNMP是一种应用层协议,它允许网络管理员远程收集和配置网络设备的数据。...

    获取IP地址和MAC地址

    java获取IP地址和MAC地址。 /** * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws Exception */ public String getIpAddr(HttpServletRequest ...

    java获取IP地址

    以下是一个示例,展示如何通过IP地址获取MAC地址: ```java public class GetMACAddress { public String getMACAddress(String ipAddress) { String str = "", strMAC = "", macAddress = ""; try { Process...

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

    #### Java实现跨网段MAC地址获取 在Java环境中实现跨网段获取远程主机MAC地址,首先需要利用现有的SNMP库,如JsNMP或SNMP4J。这些库提供了丰富的API,可以方便地与SNMP协议交互,执行Get、Set等操作。具体步骤如下...

Global site tag (gtag.js) - Google Analytics