java web判断服务器是否是本机

1,如何获取浏览器的ip

Java代码  

  1. /*** 
  2.      * 获取客户端ip地址(可以穿透代理) 
  3.      * @param request 
  4.      * @return 
  5.      */  
  6.     public static String getClientIpAddr(HttpServletRequest request) {    
  7.         String ip = request.getHeader("X-Forwarded-For");    
  8.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  9.             ip = request.getHeader("Proxy-Client-IP");    
  10.         }    
  11.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  12.             ip = request.getHeader("WL-Proxy-Client-IP");    
  13.         }    
  14.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  15.             ip = request.getHeader("HTTP_X_FORWARDED_FOR");    
  16.         }    
  17.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  18.             ip = request.getHeader("HTTP_X_FORWARDED");    
  19.         }    
  20.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  21.             ip = request.getHeader("HTTP_X_CLUSTER_CLIENT_IP");    
  22.         }    
  23.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  24.             ip = request.getHeader("HTTP_CLIENT_IP");    
  25.         }    
  26.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  27.             ip = request.getHeader("HTTP_FORWARDED_FOR");    
  28.         }    
  29.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  30.             ip = request.getHeader("HTTP_FORWARDED");    
  31.         }    
  32.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  33.             ip = request.getHeader("HTTP_VIA");    
  34.         }    
  35.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  36.             ip = request.getHeader("REMOTE_ADDR");    
  37.         }    
  38.         if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
  39.             ip = request.getRemoteAddr();    
  40.         }    
  41.         return ip;    
  42.     }  
  43.     public static String getIpAddr(HttpServletRequest request) {  
  44.         String ip = request.getHeader("X-Real-IP");  
  45.         if (null != ip && !"".equals(ip.trim())  
  46.                 && !"unknown".equalsIgnoreCase(ip)) {  
  47.             return ip;  
  48.         }  
  49.         ip = request.getHeader("X-Forwarded-For");  
  50.         if (null != ip && !"".equals(ip.trim())  
  51.                 && !"unknown".equalsIgnoreCase(ip)) {  
  52.             // get first ip from proxy ip  
  53.             int index = ip.indexOf(',');  
  54.             if (index != -1) {  
  55.                 return ip.substring(0, index);  
  56.             } else {  
  57.                 return ip;  
  58.             }  
  59.         }  
  60.         return request.getRemoteAddr();  
  61.     }  

 

 

2,如何判断服务器是否是本机

Java代码  

  1. /*** 
  2.      * 服务器是否是本机 
  3.      * @param request 
  4.      * @return 
  5.      */  
  6.     public static boolean isLocalIp(HttpServletRequest request){  
  7.         String ip=WebServletUtil.getClientIpAddr(request);  
  8.         return ip.equals("127.0.0.1")||ip.equals("localhost")||ip.equals("0:0:0:0:0:0:0:1");  
  9.     }  

 3,应用:

Java代码  

  1. /*** 
  2.      * favicon.ico  
  3.      * @throws IOException  
  4.      */  
  5.     @RequestMapping(value = "/favicon.ico")  
  6.     public ResponseEntity<byte[]> faviconIco(HttpServletRequest request) throws IOException {  
  7.         HttpHeaders headers = new HttpHeaders();  
  8.         headers.setContentType(MediaType.IMAGE_PNG);  
  9.         String faviconIcoName="sms-4.ico";  
  10.         headers.set(Constant2.CONTENT_DISPOSITION,WebServletUtil.getContentDisposition(true, faviconIcoName));  
  11.         ///home/whuang/software/apache-tomcat-7.0.53/webapps/ROOT/  
  12.         String webappPath=null;  
  13.         if(WebServletUtil.isLocalIp(request)){//服务器在本机(访问ip为127或localhost)  
  14.             webappPath=WebServletUtil.getRealPath(request);  
  15.         }else{  
  16.             webappPath=DictionaryParam.get(Constant2.DICTIONARY_GROUP_GLOBAL_SETTING, "WEB-INF_LOC");  
  17.         }  
  18.         return new ResponseEntity<byte[]>(FileUtils.getBytes4File(  
  19.                 webappPath  
  20.                 +"WEB-INF/static/img/"+faviconIcoName),  
  21.                                           headers, HttpStatus.CREATED);  
  22.   
  23.     }  

 

4,如何获取服务器部署的本地路径

Java代码  

  1. public static String getRealPath(HttpServletRequest request) {  
  2.         return getRealPath(request,  "\\");  
  3.     }  
  4.     /** 
  5.      * 获取相对地址的绝对地址 
  6.      *  
  7.      * @param request 
  8.      * @param relativePath 
  9.      * @return 
  10.      */  
  11.     public static String getRealPath(HttpServletRequest request, String relativePath) {  
  12.         return request.getSession().getServletContext().getRealPath(relativePath);  
  13.     }  

 

时间: 2024-09-01 13:41:22

java web判断服务器是否是本机的相关文章

大型Java Web系统服务器选型问题探讨

一位网友在JavaEye询问了一个大型Web系统的架构和部署选型问题,希望能提高现有的基于Java的Web应用的服务能力.由于架构模式和部署调优一直是Java社区的热门话题,这个问题引发了很多热心网友的讨论,其中一些意见对其它大型Web项目也有很好的指导意义.在讨论之初jackson1225这样描述了当前的应用的架构和部署方案: 目前系统架构如下: web层采用struts+tomcat实现,整个系统采用20多台web服务器,其负载均衡采用硬件F5来实现: 中间层采用无状态会话Bean+DAO+

java远程判断服务器开关机状态,并远程判断该服务器的系统账号和密码是否正确

问题描述 各位大侠高手,说问题前先感谢各位关注我的问题,本菜鸟先拜谢啦!问题如下:我想用java代码远程判断服务器的开关机状态,我原来是这样判断的,importjava.net.InetAddress;address=InetAddress.getByName(ip);booleanbool=address.isReachable(5000);通过返回的boolean值bool来判断服务器为ip的服务器是否开机,用InetAddress类,底层代码应该是ping远程服务器吧,用这个方法有个弊端,

Java Web 项目 自定义的配置文件存放位置

问题描述 现在手头上在开发一个java web项目,服务器为tomcat,目前在进行代码重构,需要把所有设计到的配置文件都归到conf文件夹中,项目负责人将项目结构如下:POinion --src --conf --lib --WebRoot但是如果把配置文件都归在conf文件夹中,源代码访问该如何定位到这个conf文件夹中的文件呢?我尝试用this.getClass().getResourceAsStream(filename)发现访问不到,通过 this.getClass().getReso

服务器-java代码判断本机是否连接上外网

问题描述 java代码判断本机是否连接上外网 需要通过代码判断本地网络是否连接正常,正常情况下通过activeMQ的应答机制,服务器可以正常向客户端推送消息,客户端通过队列监听接收activeMQ推送的消息. 现在是问题是网络中断后无法请求数据,当检查到网络重连后需要调用接口重新请求服务器发送数据,现在的问题就是想要判断出网络的断开和重连. 解决方案 最简单的就是轮询.寻找一个外网上的主机作为参照,能连上就是联网,否则就是不联网. 你提出的思路有问题,如果网络在网关或者路由器断开,没法判断. 解

云服务器 ECS 建站教程:部署Java Web

部署Java Web项目 Tomcat 作为一个开源且免费的 Java Web 服务器,常用来作为 web 开发的工具.它可以托管由 servlet,JSP 页面(动态内容),HTML 页面,js,样式表,图片(静态内容)组成的 Java Web 应用程序. 部署方式 在阿里云服务器下部署 JAVA 提供三种部署方式: JAVA 镜像部署 一键安装包部署 手动部署(源码编译安装/YUM安装) 一般推荐使用镜像部署,尤其适合新手,使用更加快捷方便(阿里云的云市场提供了丰富的镜像软件,点击查看).而

服务器-这些因素如何影响一个java web网站的并发数

问题描述 这些因素如何影响一个java web网站的并发数 服务器tomcat:最大连接数(maxThreads)和(acceptCount) 缓存redis:最大连接数(maxActive).最大空闲连接数(maxIdle) 数据源c3p0:最大连接数(maxPoolSize) 请教大牛解释这些参数和整个web网站并发数的关系

阿里云服务器云数据库免费体验(Java Web详细实例)

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 一.效果展示 博主部署了两个war包到阿里云服务器上,一个是没有连接数据库的,另外一个是连接了数据库的. (由于阿里云服务器免费使用15天,下面链接约2016年3月9日后无效) (1)无数据库版访问地址:http://120.25.235.171:8080/web_exception_project-0.0.1-SNAPSHOT/login.jhtml  只能用luoguo

AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】_AngularJS

本文实例讲述了AngularJS实现与Java Web服务器交互操作的方法.分享给大家供大家参考,具体如下: AngularJS是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web服务器进行交互. 准备工作 1.下载angular js库. 官网下载地址:https://angularjs.org/ 或者点击此处本站下载. 2.开发环境准备,由于是和Tomcat服务器

svn 自动提交java web 项目到tomcat服务器

问题描述 svn 自动提交java web 项目到tomcat服务器 如配置svn提交后自动将javaweb项目更行到自动tomcat服务器中, 情节是这样:团队开发使用svn 在现阶段测试项目中不同的开发人员使用的tomcat服务器,这样造成一些数据不是同步的,现在想配置下让团队开发使用用一个tomcat服务器,这样所操作都是同步的.就想到使用svn自动提交 或者MyEclipse远程使用tomcat 有哪个大神会配置呢? 解决方案 [转]java web项目改名之后tomcat服务器项目自动