`

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

阅读更多

1,如何获取浏览器的ip

/***
	 * 获取客户端ip地址(可以穿透代理)
	 * @param request
	 * @return
	 */
	public static String getClientIpAddr(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_X_FORWARDED_FOR");  
	    }  
	    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
	        ip = request.getHeader("HTTP_X_FORWARDED");  
	    }  
	    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
	        ip = request.getHeader("HTTP_X_CLUSTER_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_FORWARDED_FOR");  
	    }  
	    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
	        ip = request.getHeader("HTTP_FORWARDED");  
	    }  
	    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
	        ip = request.getHeader("HTTP_VIA");  
	    }  
	    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
	        ip = request.getHeader("REMOTE_ADDR");  
	    }  
	    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
	        ip = request.getRemoteAddr();  
	    }  
	    return ip;  
	}
	public static String getIpAddr(HttpServletRequest request) {
		String ip = request.getHeader("X-Real-IP");
		if (null != ip && !"".equals(ip.trim())
				&& !"unknown".equalsIgnoreCase(ip)) {
			return ip;
		}
		ip = request.getHeader("X-Forwarded-For");
		if (null != ip && !"".equals(ip.trim())
				&& !"unknown".equalsIgnoreCase(ip)) {
			// get first ip from proxy ip
			int index = ip.indexOf(',');
			if (index != -1) {
				return ip.substring(0, index);
			} else {
				return ip;
			}
		}
		return request.getRemoteAddr();
	}

 

 

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

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

 3,应用:

/***
	 * favicon.ico 
	 * @throws IOException 
	 */
	@RequestMapping(value = "/favicon.ico")
	public ResponseEntity<byte[]> faviconIco(HttpServletRequest request) throws IOException {
		HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.IMAGE_PNG);
        String faviconIcoName="sms-4.ico";
        headers.set(Constant2.CONTENT_DISPOSITION,WebServletUtil.getContentDisposition(true, faviconIcoName));
        ///home/whuang/software/apache-tomcat-7.0.53/webapps/ROOT/
        String webappPath=null;
        if(WebServletUtil.isLocalIp(request)){//服务器在本机(访问ip为127或localhost)
        	webappPath=WebServletUtil.getRealPath(request);
        }else{
        	webappPath=DictionaryParam.get(Constant2.DICTIONARY_GROUP_GLOBAL_SETTING, "WEB-INF_LOC");
        }
        return new ResponseEntity<byte[]>(FileUtils.getBytes4File(
        		webappPath
        		+"WEB-INF/static/img/"+faviconIcoName),
                                          headers, HttpStatus.CREATED);

	}

 

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

public static String getRealPath(HttpServletRequest request) {
		return getRealPath(request,  "\\");
	}
	/**
	 * 获取相对地址的绝对地址
	 * 
	 * @param request
	 * @param relativePath
	 * @return
	 */
	public static String getRealPath(HttpServletRequest request, String relativePath) {
		return request.getSession().getServletContext().getRealPath(relativePath);
	}

 

1
0
分享到:
评论

相关推荐

    用Java实现Web服务器

    ### 使用Java实现Web服务器的关键知识点 #### HTTP协议详解 HTTP(HyperText Transfer Protocol)协议是互联网上应用最为广泛的一种网络协议,它定义了客户端(通常是Web浏览器)与服务器端(Web服务器)之间的...

    轻松学Java Web开发

    浏览器的作用是作为万维网(Web)服务的客户端程序,它向Web服务器发送各种请求,并能够对服务器返回的超文本信息和多媒体数据格式进行解释、显示和播放。 HTTP协议,即超文本传输协议,是浏览器和Web服务器交互的...

    Java Web开发实践教程源码ch10

    在本Java Web开发实践教程源码的第10章中,我们将深入探讨Web应用程序的构建、部署和测试过程。这是一份丰富的学习资源,适用于初学者和有一定经验的开发者,旨在通过实例代码来深化理解Java Web开发的核心概念和...

    Java Web开发实践教程源码

    Java Web开发是构建基于互联网应用程序的关键技术,它涵盖了服务器端编程、数据库交互、网页动态内容生成等多个方面。本教程源码提供了丰富的实践素材,帮助学习者深入理解这一领域的核心概念和技能。 首先,我们来...

    java web测试数据库连接是否正常

    本项目专注于使用Java的JDBC(Java Database Connectivity)API来测试Oracle数据库的连接是否正常。以下将详细介绍这个过程及其相关的技术点。 首先,JDBC是Java平台的标准接口,用于与各种类型的数据库进行通信。...

    Java web 的案例

    Java Web 是一种基于Java技术构建Web应用程序的框架和标准,它包括了服务器端的Java API,如Servlet、JSP(JavaServer Pages)以及一系列相关的组件,用于开发动态、交互式的Web应用。本案例旨在提供一个基础的Java ...

    java web 标签大全

    以上只是Java Web标签使用的一小部分,实际应用中还有许多其他框架和库提供的标签,如Hibernate Validator的校验标签,以及各种JavaScript库(如jQuery)与服务器端交互的Ajax标签。熟练掌握这些标签,能显著提升...

    java web开发代码

    Java Web开发是构建基于Web的应用程序的技术集合,它利用Java编程语言进行服务器端处理,以创建动态、交互式的网页应用。在这个"java web开发代码"的压缩包中,包含了一个可能的人力资源管理系统相关的实例。这里...

    java web中用到的各种API

    它是许多Java Web应用的首选服务器,因为其小巧、高效且易于配置。 10. **Jetty**: Jetty是另一个Servlet容器,以其快速、轻量和嵌入式特性受到青睐。它同样遵循Servlet和JSP规范,并且可以在项目中直接嵌入,...

    java web 登陆注册案例

    在本案例中,JSTL可能被用在处理用户提交的请求,例如使用`&lt;c:if&gt;`和`&lt;c:choose&gt;`标签进行条件判断,`&lt;c:forEach&gt;`遍历数据,以及`&lt;fmt:formatDate&gt;`格式化日期等。 **DBCP和C3P0** 是两种常见的数据库连接池实现,...

    JAVA WEB 题库管理系统

    JAVA WEB是一种使用Java语言进行服务器端编程的技术,它包括Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等组件,用于创建动态网页应用。在这个题库管理系统中,JAVA WEB负责...

    java 作业java web

    Java Web 是一种基于Java技术构建Web应用程序的框架和标准,它涵盖了从服务器端编程到客户端交互的多个层面。Java Web 开发主要涉及Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library...

    java web server

    本项目中,我们汇总了一些关于Java Web服务器的示例代码,旨在帮助你快速理解并掌握Java Web服务器的工作原理及其相关技术。 首先,我们要了解Java Web服务器的基本构成。一个典型的Java Web服务器会包含以下组件:...

    java web 图书管理系统

    【Java Web 图书管理系统】是一种基于Java技术的Web应用程序,旨在提供一个全面的图书管理解决方案。这个系统通常包括用户界面、后端数据库以及中间层服务,用于处理图书的添加、查询、借阅、归还等一系列操作。对于...

    Java web应用程序开发

    在IT行业中,Java Web应用程序开发是一项至关重要的技能,它涵盖了从服务器端编程到客户端交互的全方位技术栈。在这个“Java Web应用程序开发”的课程中,我们主要关注的是如何使用Java技术来构建动态、交互式的Web...

    java web开发系列

    2. **Axis2Java2WSDL.java, Axis2WSDL2Java.java**:这些文件可能是示例代码,展示了如何使用Axis2将Java类转换为WSDL(Web服务描述语言)文件,以及反过来,如何从WSDL生成Java服务客户端或服务器端代码。...

    Java Web开发范例源代码

    Java Web开发范例源代码是学习和理解Java Web技术的重要资源,它包含了各种实际应用场景的实例,可以帮助开发者深入掌握相关技术。在这个压缩包中,我们可以找到一系列与Java Web相关的源代码,这对于初学者和有经验...

    Java Web 教程

    Java Web教程是一个全面的学习资源,旨在帮助开发者掌握使用Java技术构建Web应用程序的技能。这个教程可能涵盖了一系列主题,包括但不限于Servlet、JSP(JavaServer Pages)、MVC(Model-View-Controller)架构、...

    java web ppt

    Java Web技术是构建Web应用程序的一种强大工具,主要涵盖了Servlet、JSP、JSTL、JavaBean、MVC设计模式等多个核心概念。以下是对这些知识点的详细解析: 1. **Servlet**:Servlet是Java编程语言中用于扩展服务器...

    巧用Java实现Web服务器

    【Java实现Web服务器详解】 在理解Java如何实现Web服务器之前,首先要了解Web的工作原理。Web服务器和Web浏览器之间是基于客户机/服务器计算模型交互的,它们之间通过HTTP(超文本传输协议)进行通信。HTTP协议是...

Global site tag (gtag.js) - Google Analytics