zoukankan      html  css  js  c++  java
  • 利用NetworkInterface获取服务器MAC地址

    利用NetworkInterface获取服务器MAC地址
       在很多时候,我们需要获得服务器硬件信息(比如MAC地址),常用的有几种的方式:
    •  使用命令行程序获得硬盘信息,然后通过Runtime.getRuntime().exec获得输出流,然后通过字符串分析获得MAC地址
    • 编译本地程序,然后通过JNI调用
       以上两种方式都需要区分不同的操作系统平台,分别编码,比较麻烦,比如
    •  windows平台需要使用iptables /all命令
    • linux平台需要使用ifconfig命令
          今天介绍一种通用的跨平台的操作方式,那就是JDK自带的NetworkInterface接口,该接口在JDK1.4已经出现,但是功能比较少,JDK1.6之后新增了不少新功能,比较不错。
          具体功能大家可以参考API文档,这里主要介绍一下如何获得服务器MAC地址,代码如下,有注释,不多讲。
     
    然后,我们用如下测试代码,看一下测试结果
     
    输出结果如下:
     
    大家发现,"0:18:8b:cc:xx:e3",只有一个0,看起来很是别扭啊,我们不妨修订一下parseByte方法,如下:
     
    输出结果就变了:
     
    这样就看起来舒服多了嘛,是吧?
    另外,NetworkInterface接口还提供了如下方法,大家可以参考一下。
    • String displayName() 获取网络接口的显示名称
    • int getMTU()返回此接口的最大传输单元(Maximum Transmission Unit,MTU)
    • String getName()获取此网络接口的名称
    • boolean isLoopback()返回此网络接口是否是回送接口
    • boolean isPointToPoint()返回此网络接口是否是点对点接口
    • boolean isUp()返回此网络接口是否已经开启并运行
    • boolean isVirtual()返回此接口是否是虚拟接口
  • 相关阅读:
    深入学习图数据库语言Gremlin 系列文章链接汇总
    HugeGraph入门
    Connection 'ens33' is not available on device ens33 because device is strictly unmanaged
    正则里的\s和s有什么区别?
    LXMERT: Learning Cross-Modality Encoder Representations from Transformers
    Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Transformers
    在vue中使用jsx语法
    JavaScript数据结构和算法
    如何用智能手机或PAD观看笔记本电脑的视频?
    linux shell和windows bat编写
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330195.html
Copyright © 2011-2022 走看看