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.     }  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python变量分类_Python 入门系列 —— 5. 三大变量类型介绍

多值赋给多变量Python 允许在一行中将多个值赋给多个变量。x, y, z "Orange", "Banana", "Cherry"print(x)print(y)print(z)---- output ------PS E:\dream\markdown\python> & "C:/Program Files (x86)/Python/python.exe" e…

数据字典简单例子_Python学习100天-Day14(数据分析篇-pandas02)

Day14-读取文件接着上一天的内容&#xff0c;我在学习的过程中发现&#xff0c;DF数据还可以利用几个Series数据组成&#xff0c;具体看一个例子&#xff1a;两种形式&#xff0c;第一种是直接对Series创建DF对象&#xff0c;得出的结果。第二种是通过字典的形式创建DF对象&…

Java基础知识总结

一&#xff1a;java概述&#xff1a; 1991 年Sun公司的James Gosling&#xff08;詹姆斯&middot;高斯林&#xff09;等人开始开发名称为 Oak 的语言&#xff0c;希望用于控制嵌入在有线电视交换盒、PDA等的微处理器&#xff1b; 1994年将Oak语言更名为Java&#xff1b; Jav…

把百度网站设为首页_网站百度推广效果好不好?怎样才能把网站推广到百度首页?...

在移动互联网营销的过程中&#xff0c;有着各式各样的营销手段&#xff0c;也有着丰富多彩的营销平台&#xff0c;而百度平台是大家非常熟悉的&#xff0c;它拥有着亿万用户&#xff0c;几乎小伙伴们每天都需要通过百度查找各种资讯&#xff0c;来满足自己的需求&#xff0c;丰…

ZZULI 1876: 蛤玮的项链 Hash + 二分

Time Limit: 6 Sec Memory Limit: 128 MBSubmit: 153 Solved: 11SubmitStatusWeb BoardDescription 蛤玮向心仪的妹子送了一条项链,这条项链是由小写字母构成的首尾相接的字符串,妹子看了看项链对蛤玮说,"我希望它是对称的",蛤玮想了想之后决定,从项链上截取出一段…

python调用菜单响应事件_Python处理菜单消息操作示例【基于win32ui模块】

本文实例讲述了Python处理菜单消息操作。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 一、代码 # -*- coding:utf-8 -*- #! python3 import win32ui import win32api from win32con import * from pywin.mfc import window class MyWnd(window.Wnd): def __init__ (…

ucharts 折线 点_ucharts图表引入的两种方式

import uCharts from ../js_sdk/u-charts/u-charts/u-charts.js; //可以优化放全局 uCharts >使用全局const lineCharts {},optionAs {};export default {name: LineChart,props: {dataAs: {//数据type: Object,default: () > ({})},basicAs: {通用基础项设置type: Obj…

VMI和JIT

1&#xff0e;JIT生产方式的含义JIT生产方式的基本思想可用现在已经广为流传的一句话来概括&#xff0c;即“只在需要时&#xff0c;按需要的量&#xff0c;生产所需的产品”&#xff0c;这也就是just in time一词所要表达的本来含义。这种生产方式的核心是追求一种零库存、零浪…

全连接条件随机场_条件随机场CRF简介

作者&#xff1a;Ravish Chawla编译&#xff1a;ronghuaiyang导读一个简单明了的对条件随机场的说明&#xff0c;给大家一个非常直观的印象&#xff0c;CRF到底是个什么东西&#xff0c;能干什么用。条件随机场是一种用于序列预测的判别模型。它们使用来自以前标签的上下文信息…

java特殊字符转义字符_Java正则表达式处理特殊字符转义的方法

正则需要转义字符$, (, ), *, , ., [, ], ?, \\, ^, {, }, |异常现象&#xff1a;java.util.regex.PatternSyntaxException: Dangling meta. character * near index 0解决方法对特殊字符加\\转义即可。注意&#xff1a;虽然使用[]在部分条件下也可以&#xff0c;但是在对于(、…

PHP文件下载过滤类

Java代码 <?php /** $filename index.php; $download new Download(php,exe,html, false); if (!$download->downloadfile($filename)) { echo $download->getErrorMsgs(); } */ class Download { private $debug false; private $errorMsg ; …

excel支持python吗_没有 Python,微软宣布 Excel 新增 JavaScript 支持

CSDN”&#xff0c;选择“置顶公众号” 关键时刻&#xff0c;第一时间送达&#xff01; 去年年底曾有外媒报道&#xff0c;由于社区用户的强烈要求&#xff0c;谷歌正考虑添加 Python 作为官方的一种 Excel 脚本语言。 当时&#xff0c;谷歌开启了一个针对 Excel 功能的话题&am…

java 压缩gz_如何在Java中将.zip压缩为.gz?

我认为您可以为zip创建一个临时文件,将其添加到gzip,然后删除创建的zip.下面的代码示例应该可以帮助您.public void ZIPandGZIP(String fileName, OutputStream os, String header) throws FileNotFoundException {byte[] buffer new byte[1024];FileInputStream fis null;Fi…

解决outlook2013设置错误无法启动

今天在新的机器上安装office 2013&#xff0c;在进行outlook2013账户设置时&#xff0c;账户设置错误导致无法正常启动outlook。 查询相关资料发现可以通过&#xff0c;控制面板用户帐户和家庭安全—邮件&#xff0c;重新设置账户即可。 相关操作如下图&#xff1a;

论文公式编号右对齐_论文不会写?最详细的论文排版技巧

说明本文根据严思奇在2017年在"重庆邮电大学硕士学位论文"撰写期间的粗陋经验总结而作。使用的word版本为word2016。在使用时&#xff0c;首先应该根据第2章&#xff0c;按照顺序设置好所有需要全局设定的内容。然后再论文写作中&#xff0c;会依次碰到参考文献、公式…

java.util.zip_[Java 基础] 使用java.util.zip包压缩和解压缩文件

Java API中的import java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作。我们可以使用该包中的方法&#xff0c;结合IO中的相关知识&#xff0c;进行文件的压缩和解压缩相关操作。ZipFilejava中的每一个压缩文件都是可以使用ZipFile来进行表示的。File file new File…

用好href的target, base href

<base href>就是指网页里面的相对链接 的前缀url&#xff0c;如在<head></head>部分定义了此链接为http://ent.sina.com.cn/ &#xff0c;那么下面的<a hrefaaa.html></a>代表http://ent.sina.com.cn/aaa.html 这个标签的用处是解决编程时候的相…

python遍历二维数组_在Python中遍历二维数组?

你需要告诉我们一些事情&#xff1a;dataset datas.values 它可能是一个二维数组&#xff0c;因为它来自一个csv负载。但是什么形状和数据类型&#xff1f;甚至可能是阵列的一个样本。 这是函数中的data参数吗&#xff1f; 什么是blackKings和values&#xff1f;你把它们当作列…

elementui 弹窗 显示详细信息_ElementUI中el-table双击单元格事件并获取指定列的值和弹窗显示详细信息...

场景双击el-table的某个单元格时获取此单元格的信息并弹窗显示其他关联的信息。效果如下注&#xff1a;实现首先给el-table设置cell-dblclick事件v-loading"loading":data"kqryszList"selection-change"handleSelectionChange"cell-dblclick&quo…

ESXI开启SNMP服务

要监控ESXI&#xff0c;打算通过snmp方式进行监控&#xff0c;这样操作比较简单。但是要使用SNMP方式进行监控&#xff0c;必须要开启ESXI的SNMP服务。ESXI由于版本号的不同&#xff0c;SNMP开启的方法也不尽相同。 我们先来介绍ESXI5.0开启方法。在开启之前&#xff0c;我们先…