NetworkInterface.getHardwareAddress() 在Windows 2008下的BUG

Java性能优化-巧用HashSet的contains,百万级别数据性能微秒级响应 在业务开发中,经常会用到从某些配置项等地方读取一个使用特殊字符分割的字符串。然后判断其中是否包含指定字符内容。如果是数据量较小,可以直接将数组转换为ArryList等,然后调用其contains方法判断。但是这里又将其转换成了HashSet,然后再调用其contains方法,这是因为数据量大于100左右以上时,即数据量大时,使用HashSet响应时间越快。 阅读详情

今天遇到了一个特别怪的问题,在取MAC地址的时候,居然在Windows 2008下取到的跟XP的不一样。代码如下:

final Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
   while (interfaces.hasMoreElements()) {
    final NetworkInterface ni = interfaces.nextElement();
    if (ni.isLoopback() || ni.isPointToPoint() || ni.isVirtual())
     continue;
    byte[] macAddress = ni.getHardwareAddress();
    if (macAddress != null && macAddress.length > 0)
     return macAddress;
   }

 

上面代码的作用是要取得第一个MAC地址。后来发现Windows 2008下并不是取不到网卡的MAC的地址,而是因为windows 2008下多了几个网卡接口,类似eth0, eth1, eth2, ..., 而这些虚拟的网卡应该是没有MAC的地址的,但是JDK提供的函数居然能取到一个地址,造成不能取得正确的网卡地址。之前有同事也遇到过类似的情况,解决方案竟然这么简单,只需要在使用之前 调用一下UUID.randomUUID(); 就可以了。我写段测试程序也确实在调用之后,类似eth0, eth1之类的网卡MAC Address成NULL了。也不知道是JDK的问题,还是windows 2008的问题。

java获取不同操作系统名称及Mac地址 java获取不同操作系统的名称以及mac地址工具类,例如:windows,Linux,Unix等 立即下载

相关推荐

Android开发获取手机Mac地址适配所有Android版本

主要介绍了Android开发获取手机Mac地址适配所有Android版本,需要的朋友可以参考下

java:多网卡环境下获取MAC地址

JDK6以后 java.net.NetworkInterface提供了完整的方法用于获取网络设备信息。 调用 NetworkInterface.getNetworkInterfaces()可以返回所有网络设备 调用NetworkInterface.getHardwareAddress()就可以获取指定网卡的MAC. 下面的完整代码基于NetworkInterface提供了getNICs方法用于

10km的专栏 6440

AI 与新媒体

AI重构新媒体生态:从生产到分发的全链路变革 AI正成为新媒体领域的核心基础设施,通过五大能力重塑内容产业:自动化生产(AIGC写作/制图/剪辑效率提升5-10倍)、智能分发(算法精准匹配用户)、数据洞察(实时舆情分析)、风险管控(审核效率提升12倍)和运营优化(A/B测试自动化)。这推动行业从"人找内容"转向"内容找人",制作成本下降90%的同时,也带来同质化加剧、版权争议和职业重构等挑战。当前阶段,人机协同成为主流——AI处理标准化生产,人类专注创意与价值观把控。

eastyuxiao的专栏 380

Android 12 (二)

文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码.

sunming的博客 2077

从零打造音乐会级特雷门琴:原理、设计与调试全解析

电子乐器的工作原理通常基于信号生成与调制。特雷门琴作为世界上最早的电子乐器之一,其核心原理是利用射频振荡器和电容传感,将演奏者的手势变化转化为音高与音量信号。这种技术通过外差式混频实现音高控制,并利用压控放大器实现细腻的音量动态,其工程价值在于将抽象的空间位置信息精确映射为连续的音频参数。在音乐制作、声音艺术和交互装置等领域,这类技术为创造独特的演奏体验提供了基础。本文聚焦于如何从电路层面实现一台高稳定性的特雷门琴,详细阐述了从LC振荡器设计、天线场形优化到音色混合检波等关键环节,并分享了基于LTspice

weixin_34046298的博客 170

四足机器人跨楼层轨迹规划:SCAN-Planner-Pure-ROS2开源项目实践指南

在机器人导航领域,路径规划是让机器人从起点安全、高效移动到目标点的核心技术。其原理通常基于环境地图(如占据栅格地图或八叉树地图),通过搜索算法(如A*、RRT*)在配置空间中找到一条无碰撞的可行路径。这项技术的价值在于赋予机器人在复杂、非结构化环境中的自主移动能力,是巡检、救援、物流等应用场景的基石。对于四足机器人而言,其运动能力超越了轮式平台,能在楼梯、斜坡等三维地形中移动,这使得传统的二维规划不再适用,需要专门的三维轨迹规划算法。SCAN-Planner-Pure-ROS2正是这样一个专注于解决四足机器

weixin_30700977的博客 463

java在windows上获取网卡的mac地址

1. 写在前面 网上的解决方法大致就是2种,第1种是通过命令行的“ipconfig all”,然后通过Runtime.getRuntime().exec(command)执行该命令,再去输入流中读取执行命令打印输出的内容,通过找到“物理地址”或该英文字样去匹配,然后拿到mac地址。这种方法的缺点是,字样可能是中文也可能是英文,而且不同的系统输出的内容可能或不一样,用字符串匹配去找,不是特别通用,

小白的专栏 5765

原理图分享二(信盈达CorexM4核心板STM32F407VGT6)

这是第二张板子的原理图分享,这也是当时大学里学习的一个板子。 原理图分享二(信盈达CorexM4核心板STM32F407VGT6)

让学习成为一种习惯 6893

纯Java代码获取网卡MAC地址

<br />1.导入java.net包<br />2.用NetworkInterface类的getByName方法获取第一块网卡对应的NetworkInterface对象<br />3.调用getHardwareAddress方法获取MAC地址。<br /> <br />importjava.net.InetAddress;<br />importjava.net.NetworkInterface;<br />importjava.net.SocketException;<br />importjava.n

johennes的专栏 3428

英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM

1. 概述 随着汽车上通信系统越来越复杂,云端远程通信的场景越来越多,信息安全变得越来越重要,在通信领域常用的AES、SHA、RSA等加密算法被越来越多地应用到汽车上。但通常这类加解密算法都需要大量的数学运算,需要消耗很多CPU时间和资源,汽车上的ECU又有比较高的实时性要求,为了节省主CPU的资源,HSM应运而生。 HSM(Hardware Security Module),是MCU上专门用于实现加解密算法的一个外设,它一般会有一个独立的CPU,专门用来进行加解密运算,还有一些针对特定算法的硬件加速器(如

weixin_42967006的博客 4万+

基于Simulink的BCH码编解码仿真建模示例

BCH码是一类循环码,能够纠正一定数量的随机错误。灵活性:可以根据需要选择不同的码长和纠错能力。高效性:适用于短码长和中等码长的场景,广泛用于卫星通信、存储系统等。实现简单:编码和解码过程可以通过硬件或软件高效实现。在本示例中,我们将使用MATLAB/Simulink中的和模块来完成BCH码的编解码操作,并通过仿真验证其误码率(BER)性能。通过本指南,我们介绍了如何基于Simulink搭建一个BCH码的编解码模型,并进行了仿真以验证其性能。背景介绍:理解BCH码的基本原理及其在通信系统中的应用。

xiaoheshang_123的博客 190

android 获取MAC

(1) 调用android 的API: NetworkInterface. getHardwareAddress () 该API的level为9,只有android 2.3以上才有该接口 (2) 调用java 的方法: nbtstat/arp 一般android不支持这两个命令 (3) 调用Android的API: WifiManager 权限: ?

lili1985516的专栏 693

【从零开始学习 SystemVerilog】1.1、SystemVerilog 概述

【从零开始学习 SystemVerilog】1.1、SystemVerilog 概述

努力,加油每一天鸭~ 1037

NetworkInterface的使用

1. java.net.NetworkInterface类的使用 1.3. java.net.NetworkInterface的方法。 NetworkInterface定义了很多获取网络接口信息的方法,其中很多是jdk1.6版本以后才加入进去的。主要有以下方法: String displayName() 获取网络接口的显示名称 byte[] getHardwareAddre...

zyslovely的博客 667

手把手教你在ARM64架构下编译和部署Milvus:从环境搭建到Docker镜像制作全攻略

本文详细介绍了如何在ARM64架构下编译和部署Milvus,包括环境搭建、源码下载与编译、Docker镜像制作等关键步骤。通过本文的方法,您可以快速构建适用于ARM64设备的Milvus编译环境,并解决常见的编译错误。同时,还提供了基于Docker Compose的测试方法,帮助用户高效地完成向量数据库的部署与应用。这是一次深入探索开源AI工具的实用指南,为开发者在多种硬件架构上的创新应用提供了强有力的支持。

小盒子的博客 1266

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java网络编程学习笔记 NetworkInterface

NetworkInterface类表示一个由名称例如“eth0”、“net2”和分配给此接口的IP地址列表组成的网络接口。该类提供访问网卡设备的相关信息,例如可以获取网卡名称、IP地址和子网掩码等。

走马观花 1705

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java获取Mac

java获取设备Mac

weixuan_的博客 466

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java获取IP地址和MAC地址方式

java获取IP地址和MAC地址方式 前端和后台都可以获取 ip获取方式比较简单,就不做分析了,主要说mac的获取 前端获取的方式与局限性:尝试好几种方式,这种是最易实现、最简单的方式,确实能获取该浏览器客户端的mac地址 局限性:首先并不是所有浏览器都支持,笔者主要对ie做了测试,还要设置ie的安全设置(internet选项–》安全–》自定义设置 设置启用active X,如图) 方式上: /*$(function () { getMacAddress(); }) //js获取mac地址,需要在i

qq_35511571的博客 2231

Java中通过NetworkInterface获取主机地址和物理地址等

本文介绍了Java中NetworkInterface类的功能与使用方法。该类用于获取网络接口信息,包含网卡名称、IP地址列表等属性。核心方法getNetworkInterfaces()可枚举机器上所有网络接口,getHardwareAddress()能获取网卡的48位十六进制MAC地址(物理地址)。通过示例代码展示了如何获取网络接口名称、状态、MTU、回环状态及MAC地址等信息,其中MAC地址需转换为十六进制格式显示。程序输出结果与命令行执行"ipconfig/all"获取的物理地址一致,验证了方法的正确性

BADAO_LIUMANG_QIZHI的博客 713

Java网络编程(11):使用NetworkInterface类获得网络接口信

从JDK1.4开始,Java提供了一个NetworkInterface类。这个类可以得到本机所有的物理网络接口和虚拟机等软件利用本机的物理网络接口创建的逻辑网络接口的信息。 一、创建NetworkInterface对象的两个静态方法 NetworkInerface类和InetAddress一样,也没有public的构造方法。因此,必须通过它的两个静态方法来创建NetworkInter...

刘飞 482

【Android】不同方式获取Mac地址

(1) 调用android 的API: NetworkInterface. getHardwareAddress ()该API的level为9,只有android 2.3以上才有该接口(2) 调用java 的方法: nbtstat/arp 一般android不支持这两个命令。该方法没有试过。(3) 调用Android的API: WifiManager权限:<uses-permission andr

u013334392的博客 1420

详细分析Java中的NetworkInterface类(附Demo)

NetworkInterface 类是 Java 中用于表示网络接口的类,它提供了一系列方法来获取有关网络接口的信息

码农研究僧的博客 3052

使用JAVA代码获得系统的MAC地址和IP地址

NetworkInterface.getHardwareAddress 这个方法就是获得机器的MAC地址的。 import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Formatter;import java.util.Locale;/** * 使用JAVA代码获得系

萧逸闲侃 905

java:得到本机IP的MAC地址

<br />package com.happy.host;<br />import java.net.InetAddress;<br />import java.net.NetworkInterface;<br />import java.net.SocketException;<br />import java.net.UnknownHostException;<br />import java.util.Calendar;<br />import java.util.Formatter;<br />im

qiaolevip的专栏 703
上一篇: 如果房价大跌
下一篇: Oracle RAC 11gR2安装到65%的时候挂起
Meteorlet
博客等级 码龄24年 56粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值