通过调用dos命令实现获取
import java.io.*;
public class Test {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("ipconfig /all");
InputStreamReader ir = new InputStreamReader(process
.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String line;
while ((line = input.readLine()) != null)
if (line.indexOf("Physical Address") > 0) {
String MACAddr = line.substring(line.indexOf("-") - 2);
System.out.println("MAC address = [" + MACAddr + "]");
}
} catch (java.io.IOException e) {
System.err.println("IOException " + e.getMessage());
}
}
}
------------------------------------
顺便转一篇关于MAC的文章:
近来在网上经常见有人问起Mac地址的问题,那么究竟Mac地址是什么?在现行的网络中,扮演什么角色呢?下面我们就一同来探讨一下关于Mac地址的知识。
什么是Mac地址?
Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)
前24位由是生产厂家向IEEE申请的厂商地址(这可是要花钱的哦!据说1000美元才能买一个地址块)。后24位就由生产厂家自行定以了。(早期的2字节的却不用申请)
IP地址和Mac地址有什么联系和区别
大家都知道,现在有很多计算机都是通过先组建局域网,然后通过交换机和Internet连接的(大学里的校园网就是这样)。然后给每个用户分配固定的IP地址,由管理中心统一管理,这样为了管理方便就需要使用Mac地址来标志用户,防止发生混乱,明确责任(比如网络犯罪)。另外IP地址和Mac地址是有区别的,虽然他们在局域网中是一一对应的关系。IP地址是跟据现在的IPv4标准指定的,不受硬件限制比较容易记忆的地址,而Mac地址却是用网卡的物理地址,多少与硬件有关系,比较难于记忆。
如何知道自己的Mac地址
方法比较多,也比较得简单,在这里介绍两种常用的方法,在Win9x 可用:WinIPcfg获得,在2000、XP可用IPconfig -all获得。如果你已经给自己的网卡分配了IP还可以用 nbtstat -A 自己的IP 如下图,后者只能在2000/XP下使用。
如何获得别人的Mac
其实上面已经涉及到了,如果是2000/XP用户可以用 nbtstat -A IP地址(还可以获得别的东东啊,可别学坏啊)。另外同一局域网内的,你可以用ping IP 或者ping 主机名,然后用arp -a 来获得。
如何修改自己的Mac地址
Mac地址是保存在网卡的EPROM里面,通过网卡生产厂家提供的修改程序可以更改存储器里的地址,即使网卡没有这样的设置我们也可以通过间接的方法修改,一般网卡发出的包的源Mac地址并不是网卡本身写上去的,而是应用程序提供的,只是在通常的实现中,应用程序先从网卡上得到Mac地址,每次发送的时候都用这个Mac做为源Mac而已,Windows中,网卡的Mac保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以简单的改变Mac
Win9x中修改:
打开注册表编辑器,在HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Service\Class\Net\下的0000,0001,0002 Win2000/XP中的修改:同样打开注册表编辑器,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串变量,命名为"NetworkAddress",值为要设置的Mac地址,例如:000102030405
完成上述操作后重启就好了。
Linux下的修改:
1.必须关闭网卡设备,否则会报告系统忙,无法更改。
命令是:"ifconfig eth0 down"
2.修改Mac地址,这一步较Windows中的修改要简单。
命令是:"ifconfig eth0 hw ether 00AABBCCDDEE"
3.重新启用网卡
"ifconfig eth0 up"网卡的Mac地址更改就完成了。
现在还有很多软件提供了修改Mac地址的功能,如:Mac2001
那么既然IP和Mac地址都可以改,那么怎么防御呢?通过简单的交换机端口绑定(端口的Mac表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改Mac地址的盗用,如果是三层设备还可以提供:交换机端口-IP-Mac 三者的绑定,防止修改Mac的IP盗用,这种方法更有效!还有些方法如配置交换机的VLAN,使用用户认证等,都略显复杂,再次不多浪费笔墨。
分享到:
相关推荐
在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端 IP 地址 获取客户端的IP地址通常在...
获取用户请求IP地址 根据IP地址获取mac地址
在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...
执行main方法获取mac地址,最权威的demo自己测试已经正常使用。网上基本都是假的获取不到,只有我这个才是最方便的
在对网内主机进行监控时需要通过java获取远程机器的mac地址
以下将详细介绍如何使用Java代码在Android中获取Mac地址。 1. **获取Mac地址的基础概念** - **Mac地址**:Media Access Control (MAC) 地址是一个48位的二进制数字,通常表示为12个16进制数,例如`00:11:22:33:44:...
### Java 获取客户端 IP 地址 在 Web 开发中,获取客户端 IP 地址是一项非常重要的功能,尤其是在需要记录用户活动、实现地理位置定位...以上就是关于如何在 Java 中获取客户端 IP 地址及 MAC 地址的相关知识点介绍。
java中通过ip获取远程客户端的mac地址,支持跨平台
- **校验物理唯一性**:如果需要确保MAC地址在实际网络中是唯一的,可以查询网络接口或使用第三方库,如`java.net.NetworkInterface`类来获取和验证。 3. **MAC地址转换**: - **二进制与十六进制转换**:可以...
在Java开发中,有时我们需要将Web页面嵌入到应用程序中以提供更丰富的用户交互体验,同时,获取设备的MAC(Media Access Control)地址对于特定的身份验证或设备唯一性识别非常有用。本文将深入探讨如何使用Java内嵌...
在Java环境中实现跨网段获取远程主机MAC地址,首先需要利用现有的SNMP库,如JsNMP或SNMP4J。这些库提供了丰富的API,可以方便地与SNMP协议交互,执行Get、Set等操作。具体步骤如下: 1. **连接SNMP代理**:使用SNMP...
通过上述代码,我们实现了使用Java获取远程主机MAC地址的功能。需要注意的是,这种方法受限于操作系统的限制,并且可能存在一定的安全风险。在生产环境中部署此类功能前,建议进行充分的测试并采取适当的安全措施。
在Java编程语言中,获取一个特定IP地址对应的MAC(Media Access Control)地址是一项常见的网络编程任务。MAC地址是网络设备在网络层的物理地址,用于标识网络接口控制器(NIC)。在局域网(LAN)中,MAC地址是唯一...
在Java开发中,有时我们需要获取当前计算机的MAC地址,例如在网络设备管理或安全认证等场景中。本文将详细介绍如何通过Java代码获取本机网卡的MAC地址,并针对不同的操作系统(如Windows与Unix/Linux)提供相应的...
在Java编程中,获取计算机硬件信息是常见的需求之一,其中之一就是获取网卡(Network Interface Card,简称NIC)的物理地址,也就是MAC地址。MAC地址是一个唯一标识网络接口的硬件地址,通常由六组两进制数字组成,...
通过阅读和理解这两份代码,你可以更深入地了解Java中获取IP和MAC地址的实现细节,并将其应用到自己的项目中。在实际应用中,务必考虑到各种可能的异常情况,如网络不可达、权限不足等,并提供相应的错误处理机制。
本文将深入解析在Java/JSP环境中获取客户端网卡MAC地址的三种常见方法,旨在为开发者提供全面而深入的理解。 ### 方法一:通过Java NIO(非阻塞I/O)库 Java NIO库提供了访问底层网络接口的能力,从而可以获取包括...
java获取不同操作系统的名称以及mac地址工具类,例如:windows,Linux,Unix等
java获取mac,通过命令获取裁剪后得到想要的内容
Java 自动获取本机IP和MAC地址是一项常见的需求,在网络编程和系统管理中经常会用到。这个小工具利用了Java的网络和系统API,能够帮助用户便捷地查看本机的网络配置信息。以下是对相关知识点的详细说明: 1. **Java...