前面我们运维小伙在部署的时候,发现在真实服务器获取不到mac地址或者获取不到指定类型的mac地址,写程序记录如下

import com.google.common.base.Strings;

import java.net.NetworkInterface;

import java.util.Enumeration;

public class MacHelper {

private static MacHelper instance;

public static MacHelper getInstance() {

if (instance == null) {

synchronized (MacHelper.class) {

instance = new MacHelper();

}

}

return instance;

}

/**

* 获取本地IP

*

* @return String

*/

public String getFirstLocalMac() {

String startName = "eth", symbol = "";

return getFirstLocalMac(startName, symbol);

}

/**

* 获取本地IP

*

* @return String

*/

public String getFirstLocalMac(String startName, String symbol) {

try {

Enumeration enumeration = NetworkInterface.getNetworkInterfaces();

while (enumeration.hasMoreElements()) {

NetworkInterface networkInterface = enumeration.nextElement();

if (networkInterface == null) {

continue;

}

if (!(networkInterface.getName().equals(startName) ||

networkInterface.getName().startsWith(startName))) {

continue;

}

//获取网卡,获取地址

byte[] mac = networkInterface.getHardwareAddress();

if (mac == null || mac.length <= 0) {

continue;

}

StringBuilder sb = new StringBuilder();

int i = 0;

for (byte b : mac) {

//字节转换为整数

int temp = b & 0xff;

String str = Integer.toHexString(temp);

if (!Strings.isNullOrEmpty(symbol) && i == 0) {

sb.append(symbol);

}

if (str.length() == 1) {

sb.append("0").append(str);

} else {

sb.append(str);

}

i++;

}

return sb.toString().toLowerCase();

}

} catch (Exception e) {

e.printStackTrace();

}

return "";

}

}

java设置本机地址写在哪个类_JAVA获取指定的类型的本机MAC地址相关推荐

  1. mac地址容量的作用_在交换机或路由器中怎么来表明mac地址容量的

    .交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中. 2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发. 3.如数 ...

  2. JAVA获取局域网内对应IP电脑的MAC地址(物理地址)

    创建类UdpGetClientMacAddr.java package com.shuzhiqiang.common;import java.io.IOException; import java.n ...

  3. 本页设置mac地址过滤来控制计算机对本无线网络的访问,Netcore磊科路由器无线MAC地址过滤设置方法...

    Netcore磊科路由器无线MAC地址过滤的设置方法,无线MAC地址过滤的主要作用,是用来控制无线终端(笔记本.智能手机.平板电脑)对路由器无线网络的访问,通过合理的配置,还可以防止蹭网,保护无线网络 ...

  4. 获取安卓设备的有线网卡的MAC地址(安卓TV、安卓系统的广告机等)

    一.有些安卓设备不仅有无线wifi的mac地址,还有有线网卡的mac地址,下面是几中获取方法. 1.直接上代码,以下几种方法只能获取有线网卡MAC //得到有线网卡的MAC地址 public stat ...

  5. java的异常有哪些类_Java中的异常类型有哪些

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...

  6. adb 查看gpu_获取android 设备的cpu gpu信息 mac地址

    1.获取cpu信息:cpu信息存在于/proc/cpuinfo文件下,adb shell 进去后用 cat /proc/cpuinfo 可以查看 private String getCpuInfo() ...

  7. java按季还款_Java 获取指定日期范围内的每个月,每季度,每一年

    /** *根据时间范围获得月份集 * @return */ public static List getRangeSet(String beginDate,String endDate){ /*    ...

  8. java程序运行必须得三个io类_Java基础知识(三)

    一.hashCode 与 equals (重要) 面试官可能会问你:"你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?" 1 ...

  9. java取上一个月_Java获取指定日期前一月(年)或后一月(年)

    /** * 获取指定月的前一月(年)或后一月(年) * @param dateStr * @param addYear * @param addMonth * @param addDate * @re ...

  10. Android获取路由网关(上联设备)MAC地址

    我这边直接贴代码吧,里面有一些注释: 具体的我就不解释了,但是这种方式我本地测试过,是准确的,包括有线和无线的连接方式,具体里面的一些之类和文件的含义,可以自己百度下. /*** 获取路由器MAC地址 ...

最新文章

  1. 智能制造-逆向工程-三维测量-标定
  2. 一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
  3. 这些高校竟因名字太“坑爹”被误会为三本?盘点九所实力强劲但被名字耽误的大学...
  4. c 编程语言概述,C编程语言概述
  5. m1MacBook的TensorFlow虚拟环境---pytables的安装
  6. 使用WPF动态资源在Gtk3 C#中进行本地化
  7. 从网络到分布式-负载均衡
  8. mac mysql打不开闪一下_mac系统上 MySQL Workbench意外退出,再也打不开
  9. UITableView自动计算图片的高度 SDWebImage
  10. PAT Basic 1011
  11. 微信APP支付-Android+springboot搭建后端(一)
  12. 推导多元最小二乘法的计算方法
  13. Ubuntu桌面远程工具
  14. Odoo 8.0深入浅出开发教程
  15. 【LeetCode】Algorithms 题集(二)
  16. IMAP协议定时监听接收邮件(QQ邮箱、网易邮箱都可)
  17. 八拜之交是指哪八拜?
  18. SQL 时间字段为空转换为空字符串
  19. 杰理之对箱TWS通话有回音,噗噗声,卡顿问题【篇】
  20. 《MFC编程》:MFC库中类的简介

热门文章

  1. 动静态nat综合实验
  2. git删除远程提交记录
  3. [JNI] 开发基础(1) c语言基本类型
  4. Luogu4113 [HEOI2012]采花
  5. LOJ2316「NOIP2017」逛公园
  6. BZOJ3309 DZY Loves Math
  7. 网络基础知识(黑马教程笔记)-6-静态资源访问的功能实现
  8. java压测请求线程数_jmeter压力测试 设置一秒发送一次请求,一秒两次请求
  9. java jsonobject_Java调用groovy及如何使用springBean
  10. 英文c语言试题,C语言今日练习试题(主要练习英文阅读能力)