基本目前没有纯Java的API来访问硬件信息,以后或许会有吧,谁知道
对Mac地址的需求部分来自UUID, 另有很大部分来自License Management,这真是一件无聊的事情,希望以后软件卖的都是服务,不是拷贝,省却这些麻烦
搜了一下,大体有三类解决分案
1, JDK6, JDK7 ?
详情可参见以下链接 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4691932
2, Shell Command
就是截取 ipconfig, ifconfig 等命令的输出,然后解析
有一些开源项目,如 http://sourceforge.net/projects/javanetcomm/
还有很多代码片断,如 http://forum.java.sun.com/thread.jspa?threadID=61556, http://forum.java.sun.com/thread.jspa?threadID=245711
这种方法的缺点是有可能需要较高的系统权限才能执行这些命令或者访问网卡硬件
3, JNI
也有开源项目包含了这个功能, 如 http://jug.safehaus.org/
缺点是不方便部署
然而不是所有的网络都是Ethernet, 对License Management来说Mac地址只是更为generic的概念"Host Id"的一种考量因素.
分享到:
相关推荐
MAC地址,全称为Media Access Control Address,中文名为媒体访问控制地址,是网络设备硬件层面上的一个唯一标识。在局域网(LAN)中,每个网络接口控制器(NIC,Network Interface Controller)都有一个唯一的MAC...
### Java 获取客户端 IP 和 MAC 地址 在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端...
在Java中,`java.net.NetworkInterface`类提供了获取MAC地址的功能。Python则有`uuid`模块的`getnode()`方法,或者其他第三方库如`psutil`。 在网络安全方面,MAC地址被用于实施一些控制策略,比如MAC地址过滤,这...
你可以使用`java.net.NetworkInterface`类和`java.net.SocketAddress`类来获取本地MAC地址。首先,调用`NetworkInterface.getNetworkInterfaces()`获取所有网络接口,然后遍历这些接口,使用`getHardwareAddress()`...
在Java开发中,有时我们需要将Web页面嵌入到应用程序中以提供更丰富的用户交互体验,同时,获取设备的MAC(Media Access Control)地址对于特定的身份验证或设备唯一性识别非常有用。本文将深入探讨如何使用Java内嵌...
java NetworkInterface类获取MAC地址。
- 如果执行命令时出现任何异常(如权限不足、命令不存在等),则返回错误消息`"Can't Get MAC Address!"`。 4. **主方法**: - 创建`GetMACAddress`实例,并调用`getMACAddress`方法获取指定IP地址的MAC地址。 -...
在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...
String macAddress = SystemProperties.get("sys.eth0.hwaddr", ""); ``` 6. **考虑使用随机Mac地址** - 为了隐私和安全,Android系统会提供一个随机生成的Mac地址用于Wi-Fi扫描。如果你只需要用于识别设备,...
在计算机网络领域,MAC地址(Media Access Control Address)作为网卡的唯一标识,扮演着关键角色,尤其是在网络通信和安全监控中。然而,传统的获取远程主机MAC地址的方法,如通过IP Helper API的SendARP函数,存在...
System.out.println("MAC Address: " + vb.getVariable().toString()); } else { System.out.println("No response received."); } // 关闭SNMP会话 snmp.close(); } } ``` 请注意,实际的OID和网络配置...
System.err.println("Failed to get MAC address: " + e.getMessage()); } } } ``` 这段代码首先获取所有网络接口,然后遍历这些接口,跳过非活动、回环或虚拟接口。对于每个有效的接口,它会获取硬件地址(即...
System.out.println("Your Mac Address is: " + mytool.getMACAddress()); } // 取得 LOCALHOST 的 IP 地址 public InetAddress getMyIP() { try { myIPaddress = InetAddress.getLocalHost(); } catch ...
mac_address = ':'.join(('%012X' % uuid.getnode())[i:i+2] for i in range(0, 12, 2)) print(mac_address) ``` 2. **Java**: Java提供了`java.net.NetworkInterface`类来获取网络接口的信息,包括MAC地址。 ...
在Java编程中,获取IP地址和MAC地址是网络通信中常见的需求。IP地址标识了网络上的唯一设备,而MAC地址则是物理网络接口的唯一标识。以下是对标题和描述中涉及的知识点的详细解释: 1. **获取客户端IP地址**: - ...
Log.e("Error", "Failed to get MAC address", e); } return null; } ``` 这段代码遍历所有网络接口,并找到第一个非环回、非虚拟的接口,然后提取其硬件地址(即Mac地址)。 需要注意的是,即使这样,在某些...
总的来说,Java获取本机IP地址和MAC地址涉及了对网络编程底层原理的理解,包括网络接口、IP地址类型以及MAC地址的概念。通过调用Java的网络API,我们可以实现跨平台的网络信息查询,但需要特别注意不同操作系统可能...
- **Java**:使用`java.net.NetworkInterface`类,遍历所有网络接口并获取MAC地址。 - **C#**:通过`ManagementClass`和`ManagementObjectCollection`操作WMI。 3. **第三方软件**:有些系统工具或网络诊断软件也...
SendARP(Address Resolution Protocol)是Windows操作系统中的一种API,用于在局域网(LAN)内解析IP地址到MAC地址。然而,当尝试跨网段获取远程主机的MAC地址时,SendARP方法存在限制。它只能获取同一网段内的主机...