千家信息网

java中如何获取MAC地址

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍了java中如何获取MAC地址,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是Mac地址?Mac地址就是在媒体接入
千家信息网最后更新 2025年11月11日java中如何获取MAC地址

这篇文章主要介绍了java中如何获取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 00?AA?BB?CC?DD?EE"

3.重新启用网卡

"ifconfig eth0 up"网卡的Mac地址更改就完成了。

现在还有很多软件提供了修改Mac地址的功能,如:Mac2001

那么既然IP和Mac地址都可以改,那么怎么防御呢?通过简单的交换机端口绑定(端口的Mac表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改Mac地址的盗用,如果是三层设备还可以提供:交换机端口-IP-Mac 三者的绑定,防止修改Mac的IP盗用,这种方法更有效!还有些方法如配置交换机的VLAN,使用用户认证等,都略显复杂,再次不多浪费笔墨。

通过调用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());  }  }  }

感谢你能够认真阅读完这篇文章,希望小编分享的"java中如何获取MAC地址"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

地址 网卡 交换机 方法 注册表 用户 端口 篇文章 厂家 命令 字节 就是 局域 局域网 生产厂家 程序 生产 管理 主机 应用程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 qq点赞后不能更新数据库 R系统 数据库理论 传统数据库系统中数据管理 焦点科技互联网保险电话销售 北京互联网网络技术开发 数据库订单号类型 连接excel数据库管理 高中信息技术网络技术应用教科版 安卓手机怎么设置软件开发者 刘国栋数据库 网络安全研究特色创新论文 离石天气预报软件开发 未落实网络安全义务违法吗 果橙网络技术有限公司招聘 软件开发中专实习工资多少 网络安全隐私怎么泄露 大足公安分局网络安全保卫支队 网络安全青少年宣传 账号风险无法连接服务器 负责北京银行网络安全的公司 长丰网络技术咨询价格信息 杭州网络安全会议 通信达交易中心服务器功能 软件开发人员驻场 网络安全研究特色创新论文 华为防火墙服务器映射的设置指导 飞机大厨老是显示服务器没响应 网络安全方向大学排名 日语作文网络安全 网络安全工作宣传周
0