zoukankan      html  css  js  c++  java
  • java代码求IP和mac地址

    private static String getMACAddress() throws Exception {
    InetAddress ia = InetAddress.getLocalHost();
    // 获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。
    byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();

    // 下面代码是把mac地址拼装成String
    StringBuffer sb = new StringBuffer();

    for (int i = 0; i < mac.length; i++) {
    if (i != 0) {
    sb.append("-");
    }
    // mac[i] & 0xFF 是为了把byte转化为正整数
    String s = Integer.toHexString(mac[i] & 0xFF);
    sb.append(s.length() == 1 ? 0 + s : s);
    }

    // 把字符串所有小写字母改为大写成为正规的mac地址并返回
    return sb.toString().toUpperCase().replaceAll("-", "");
    }
    public String getIpAddr(HttpServletRequest request){
    String ipAddress = request.getHeader("x-forwarded-for");
    if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
    ipAddress = request.getHeader("Proxy-Client-IP");
    }
    if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
    ipAddress = request.getHeader("WL-Proxy-Client-IP");
    }
    if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
    ipAddress = request.getRemoteAddr();
    if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){
    //根据网卡取本机配置的IP
    InetAddress inet=null;
    try {
    inet = InetAddress.getLocalHost();
    } catch (Exception e) {
    e.printStackTrace();
    }
    ipAddress= inet.getHostAddress();
    }
    }
    //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
    if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15
    if(ipAddress.indexOf(",")>0){
    ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
    }
    }
    return ipAddress;
    }

  • 相关阅读:
    Memcached源码分析之memcached.h
    Memcached源码分析之请求处理(状态机)
    Memcached源码分析之线程模型
    Memcached源码分析之从SET命令开始说起
    Memcached源码分析
    jqgrid 获取当前页码
    CSS 居中大全【转】
    判断浏览器是否IE10
    jQuery.validate的this.optional(element)作用
    Java中static、final用法小结
  • 原文地址:https://www.cnblogs.com/xzcBY/p/8690245.html
Copyright © 2011-2022 走看看