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()返回此接口是否是虚拟接口
  • 相关阅读:
    SQL语法 之 基本查询
    Oracle 之 常用函数
    Tomcat 之 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099;
    vim 如何编辑 GB2312 编码的文件?
    网络编程常见类型定义
    网络地址转换相关函数使用(inet_addr,inet_ntoa,inet_addr)
    onvif获取摄像头的流媒体地址完整流程
    gsoap
    海康ipc onvif抓包分析
    onvif杂项
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330195.html
Copyright © 2011-2022 走看看