当前位置: 首页 > news >正文

Java常用工具类之自定义访问对象

package com.wazn.learn.util;

import javax.servlet.http.HttpServletRequest;  

/** 
 * 自定义访问对象工具类 
 *  
 * 获取对象的IP地址等信息 
 * @author yangzhenyu
 * 
 */  
public class CusAccessObjectUtil {  
  
    /** 
     * 如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 
     * 192.168.1.100 
     *  
     * 用户真实IP为: 192.168.1.110 
     *  
     * @param request 
     * @return 
     */  
    public static String getIpAddress(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.getHeader("HTTP_CLIENT_IP");  
        }  
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");  
        }  
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
            ip = request.getRemoteAddr();  
        }  
        return ip;  
    }  
      
}  

 

转载于:https://www.cnblogs.com/jiangwz/p/8310981.html

相关文章:

  • windows代理
  • unity3d GUITexture不显示问题
  • 微信小程序之 Index(仿淘宝分类入口)
  • Jerry的CRM Middleware(中间件)文章合集
  • 一些网址
  • 原生JS实现百度搜索功能
  • JavaScript:(a==1 a==2 a==3)能输出true么?
  • 阿里云启动API创新大赛 资源编排技术为场景赛题
  • 阿里云MaxCompute,用计算力让数据发声
  • Linux - ubuntu 设置固定ip和设置dns
  • 8-Socket网络编程
  • Linux下的tar压缩解压缩命令详解
  • CSS3第三天
  • SAP之ABAP吐槽
  • centos6.8 安装Python2.7后, yum出现“No module named yum”错误
  • Android 架构优化~MVP 架构改造
  • Apache的基本使用
  • JavaScript类型识别
  • js操作时间(持续更新)
  • Leetcode 27 Remove Element
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Phpstorm怎样批量删除空行?
  • VUE es6技巧写法(持续更新中~~~)
  • 人脸识别最新开发经验demo
  • 首页查询功能的一次实现过程
  • 在weex里面使用chart图表
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Java总结 - String - 这篇请使劲喷我
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • !$boo在php中什么意思,php前戏
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • ###STL(标准模板库)
  • $jQuery 重写Alert样式方法
  • (1)(1.13) SiK无线电高级配置(六)
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (分布式缓存)Redis持久化
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (新)网络工程师考点串讲与真题详解
  • (一)appium-desktop定位元素原理
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)h264中avc和flv数据的解析
  • (转)Sublime Text3配置Lua运行环境
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net 托管代码与非托管代码
  • .NET6实现破解Modbus poll点表配置文件