殇丶善若水_个人页

个人头像照片 殇丶善若水
个人头像照片
17
2
0

个人介绍

暂无个人介绍

擅长的技术

  • Java
  • Linux
  • 数据库
  • JavaScript
  • 开发工具
  • 设计模式
  • 微服务
  • 容器
  • Windows
获得更多能力
通用技术能力:
  • Java
    高级

    能力说明:

    精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。

    获取记录:

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2019年08月

  • 发表了文章 2018-11-22

    Linux下安装ActiveMQ-5.15.8

  • 发表了文章 2018-11-16

    Nginx负载均衡配置+keepalived高可用

  • 发表了文章 2018-11-15

    Linux设置静态IP(桥接模式)

  • 发表了文章 2018-11-13

    Java递归实现简单算法

  • 发表了文章 2018-11-06

    XShell工具连接不上虚拟机问题

  • 发表了文章 2018-11-04

    Mybatis分页插件PageHelper-5.1.1

  • 发表了文章 2018-11-01

    Maven本地jar包部署与安装:dubbox-2.8.4.jar

  • 发表了文章 2018-11-01

    Linux下安装zookeeper-3.4.13

  • 发表了文章 2018-10-25

    Java面试题

  • 发表了文章 2018-10-25

    Linux下安装Redis-5.0.0

  • 发表了文章 2018-10-25

    Linux常用命令

  • 发表了文章 2018-10-21

    Linux下安装Nginx-1.15.5

  • 发表了文章 2018-10-19

    Linux下安装Tomcat 8.0.53

  • 发表了文章 2018-10-19

    Linux下安装WebLogic 12c

  • 发表了文章 2018-10-18

    Linux下安装Oracle12c R2

  • 发表了文章 2018-10-16

    Linux下yum安装MySQL

  • 发表了文章 2018-10-16

    Linux下安装jdk

正在加载, 请稍后...
滑动查看更多
  • 回答了问题 2019-08-06

    java如何获取发起请求的用户真实IP

    /** * 获取用户实际IP地址 * @param request 当前请求对象 * @return 实际IP地址 */ public static String getRemoteIp(HttpServletRequest request) { String ip = request.getHeader('X-Forwarded-For'); logger.trace('当前IP来源[X-Forwarded-For], 值[{}]', ip); if(!StringUtils.isEmpty(ip) && !NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)){ //多次反向代理后会有多个ip值,第一个ip才是真实ip int index = ip.indexOf(','); if(index != -1){ return ip.substring(0, index); }else{ return ip; } } ip = request.getHeader('X-Real-IP'); logger.trace('当前IP来源[X-Real-IP], 值[{}]', ip); if(!StringUtils.isEmpty(ip) && !NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)){ return ip; } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader('Proxy-Client-IP'); logger.trace('当前IP来源[Proxy-Client-IP], 值[{}]', ip); } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader('WL-Proxy-Client-IP'); logger.trace('当前IP来源[WL-Proxy-Client-IP], 值[{}]', ip); } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader('HTTP_CLIENT_IP'); logger.trace('当前IP来源[HTTP_CLIENT_IP], 值[{}]', ip); } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader('HTTP_X_FORWARDED_FOR'); logger.trace('当前IP来源[HTTP_X_FORWARDED_FOR], 值[{}]', ip); } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); logger.trace('当前IP来源[getRemoteAddr], 值[{}]', ip); } if ('0:0:0:0:0:0:0:1'.equals(ip)) { String ipv4FromLocal = getIpv4FromLocal(); if (StringUtils.isNotEmpty(ipv4FromLocal)) { ip = ipv4FromLocal; } } return ip; } /** * 获取本地IP地址 * @return IP地址 */ private static String getIpv4FromLocal() { String ip = null; InputStream is = null; InputStreamReader isr = null; BufferedReader br = null; try { Process process = Runtime.getRuntime().exec('cmd.exe /c ipconfig | findstr IPv4'); is = process.getInputStream(); isr = new InputStreamReader(is); br = new BufferedReader(isr); String line = br.readLine(); ip = line.substring(line.indexOf(':') + 1).trim(); } catch (IOException e) { logger.warn('获取本地IP异常', e); } finally { try { if (br != null) { br.close(); } if (isr != null) { isr.close(); } if (is != null) { is.close(); } } catch (IOException e) { logger.debug('流关闭异常', e); } } return ip; }
    踩0 评论0
  • 回答了问题 2019-08-06

    请教下,Java 获取本机ip 怎么将虚拟网卡排除掉啊,有什么方式吗?

    /** * 获取用户实际IP地址 * @param request 当前请求对象 * @return 实际IP地址 */ public static String getRemoteIp(HttpServletRequest request) { String ip = request.getHeader('X-Forwarded-For'); logger.trace('当前IP来源[X-Forwarded-For], 值[{}]', ip); if(!StringUtils.isEmpty(ip) && !NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)){ //多次反向代理后会有多个ip值,第一个ip才是真实ip int index = ip.indexOf(','); if(index != -1){ return ip.substring(0, index); }else{ return ip; } } ip = request.getHeader('X-Real-IP'); logger.trace('当前IP来源[X-Real-IP], 值[{}]', ip); if(!StringUtils.isEmpty(ip) && !NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)){ return ip; } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader('Proxy-Client-IP'); logger.trace('当前IP来源[Proxy-Client-IP], 值[{}]', ip); } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader('WL-Proxy-Client-IP'); logger.trace('当前IP来源[WL-Proxy-Client-IP], 值[{}]', ip); } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader('HTTP_CLIENT_IP'); logger.trace('当前IP来源[HTTP_CLIENT_IP], 值[{}]', ip); } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getHeader('HTTP_X_FORWARDED_FOR'); logger.trace('当前IP来源[HTTP_X_FORWARDED_FOR], 值[{}]', ip); } if (StringUtils.isEmpty(ip) || NoticeConstant.UNKNOWN.equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); logger.trace('当前IP来源[getRemoteAddr], 值[{}]', ip); } if ('0:0:0:0:0:0:0:1'.equals(ip)) { String ipv4FromLocal = getIpv4FromLocal(); if (StringUtils.isNotEmpty(ipv4FromLocal)) { ip = ipv4FromLocal; } } return ip; } /** * 获取本地IP地址 * @return IP地址 */ private static String getIpv4FromLocal() { String ip = null; InputStream is = null; InputStreamReader isr = null; BufferedReader br = null; try { Process process = Runtime.getRuntime().exec('cmd.exe /c ipconfig | findstr IPv4'); is = process.getInputStream(); isr = new InputStreamReader(is); br = new BufferedReader(isr); String line = br.readLine(); ip = line.substring(line.indexOf(':') + 1).trim(); } catch (IOException e) { logger.warn('获取本地IP异常', e); } finally { try { if (br != null) { br.close(); } if (isr != null) { isr.close(); } if (is != null) { is.close(); } } catch (IOException e) { logger.debug('流关闭异常', e); } } return ip; }
    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息