java根据本地IP获取mac地址的方法

 更新时间:2017年06月29日 08:38:35   作者:java根据本地Ip获取mac地址  
这篇文章主要为大家详细介绍了java根据本地IP获取mac地址的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java根据本地IP获取mac地址的具体代码,供大家参考,具体内容如下

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

public class MacAddress {

 /**
 * @param args
 * @throws UnknownHostException 
 * @throws SocketException 
 */
 public static void main(String[] args) throws UnknownHostException, SocketException {

 InetAddress ia = InetAddress.getLocalHost();
 System.out.println(ia);
 getLocalMac(ia);
 }
 private static void getLocalMac(InetAddress ia) throws SocketException {
 // TODO Auto-generated method stub
 //获取网卡,获取地址
 byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
 
 System.out.println("mac数组长度:"+mac.length);
 StringBuffer sb = new StringBuffer("");
 for(int i=0; i<mac.length; i++) {
  if(i!=0) {
  sb.append("-");
  }
  //字节转换为整数
  int temp = mac[i]&0xff;
  String str = Integer.toHexString(temp);
  System.out.println("每8位:"+str);
  if(str.length()==1) {
  sb.append("0"+str);
  }else {
  sb.append(str);
  }
 }
 System.out.println("本机MAC地址:"+sb.toString().toUpperCase());
 }
}

下面这个方法是获取客户端请求地址

public String getClientIp(HttpServletRequest request) {
 String ip = request.getHeader("x-forwarded-for");
 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
  ip = request.getHeader("Proxy-Client-IP");

 }

 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

  ip = request.getHeader("WL-Proxy-Client-IP");

 }

 if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

  ip = request.getRemoteAddr();

 }
 if(ip.trim().contains(",")){
  String [] ips=ip.split(",");
  ip=ips[0];
 }
 return ip;
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 基于java时区转换夏令时的问题及解决方法

    基于java时区转换夏令时的问题及解决方法

    下面小编就为大家分享一篇基于java时区转换夏令时的问题及解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • java 方法重写与权限修饰符以及多态和抽象类详解概念和用法

    java 方法重写与权限修饰符以及多态和抽象类详解概念和用法

    重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写,权限修饰符用于控制被修饰变量、方法、类的可见范围,说明了面向对象的封装性,所以我们要适用他们尽可能的让权限降到最低,从而安全性提高
    2021-10-10
  • Jmeter后置处理器实现过程及方法应用

    Jmeter后置处理器实现过程及方法应用

    这篇文章主要介绍了Jmeter后置处理器实现过程及方法应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • java guava主要功能介绍及使用心得总结

    java guava主要功能介绍及使用心得总结

    这篇文章主要为大家介绍了java guava主要功能介绍及使用心得总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • java图片滑动验证(登录验证)原理与实现方法详解

    java图片滑动验证(登录验证)原理与实现方法详解

    这篇文章主要介绍了java图片滑动验证(登录验证)原理与实现方法,结合实例形式详细分析了java图片滑动登录验证的相关原理、实现方法与操作技巧,需要的朋友可以参考下
    2019-09-09
  • Java解析zip文件,并识别压缩包里面的文件转换成可操作的IO流方式

    Java解析zip文件,并识别压缩包里面的文件转换成可操作的IO流方式

    这篇文章主要介绍了Java解析zip文件,并识别压缩包里面的文件转换成可操作的IO流方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java序列化框架Kryo高效转换对象为字节流面试精讲

    Java序列化框架Kryo高效转换对象为字节流面试精讲

    这篇文章主要为大家介绍了Java序列化框架Kryo高效转换对象为字节流面试精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • springMvc请求的跳转和传值的方法

    springMvc请求的跳转和传值的方法

    本篇文章主要介绍了springMvc请求的跳转和传值的方法,这里整理了几种跳转方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • 深入解析Spring Bean初始化时和销毁时的扩展点

    深入解析Spring Bean初始化时和销毁时的扩展点

    在Bean进行初始化或者销毁的时候,如果我们需要做一些操作,比如加载和销毁一些资源或者执行一些方法时,那么就可以使用Spring提供的一些扩展,今天主要分享初始化Bean时的三种方式和销毁Bean时的三种方式,需要的朋友可以参考下
    2023-08-08
  • SpringBoot日程管理Quartz与定时任务Task实现详解

    SpringBoot日程管理Quartz与定时任务Task实现详解

    定时任务是企业级开发中必不可少的组成部分,诸如长周期业务数据的计算,例如年度报表,诸如系统脏数据的处理,再比如系统性能监控报告,还有抢购类活动的商品上架,这些都离不开定时任务。本节将介绍两种不同的定时任务技术
    2022-09-09

最新评论