精华内容
下载资源
问答
  • 这里之所以调用新浪api接口,主要是可以避免我们在本地存放一个ip归属地库, 同时,我们在本地要存放用户的ip,仅仅存放其ip就可以了,无须存放其归属地,节省一个字段。 如下图,写一个带有获取客户端IP地址的...

    这里之所以调用新浪api接口,主要是可以避免我们在本地存放一个ip归属地库,

    同时,我们在本地要存放用户的ip,仅仅存放其ip就可以了,无须存放其归属地,节省一个字段。

    如下图,写一个带有获取客户端IP地址的网页:


    首先,在Eclipse的目录结构如下:


    里面除了servlet的支持包之外,就一个.jsp与一个.java。

    其中这里用到Servlet3.0,因此web.xml没有任何东西:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://java.sun.com/xml/ns/javaee"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    	version="3.0">
    
    </web-app>

    之后,index.jsp通过Javascript的Ajax,向ipGetTest.java中获取相应的Json。Javascript与Servlet的交互原理已经在《【Servlet】Servlet3.0与纯javascript通过Ajax交互》(点击打开链接)中说过了,这里不再赘述!以下是index.jsp中的代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Javaweb-IP查询</title>
    </head>
    
    <body>
    	<p>IP:<span id="ip"></span></p>
    	<p>IP归属地:<span id="area"></span></p>
    </body>
    </html>
    <script>
    	//创建Ajax对象,不同浏览器有不同的创建方法,其实本函数就是一个简单的new语句而已。  
    	function createXMLHttpRequest() {
    		var XMLHttpRequest1;
    		if (window.XMLHttpRequest) {
    			XMLHttpRequest1 = new XMLHttpRequest();
    		} else if (window.ActiveXObject) {
    			try {
    				XMLHttpRequest1 = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e) {
    				XMLHttpRequest1 = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		}
    		return XMLHttpRequest1;
    	}
    	function ajax() {
    		var XMLHttpRequest1 = createXMLHttpRequest();
    		//指明相应页面  
    		var url = "./ipGetTest";
    		XMLHttpRequest1.open("POST", url, true);
    		//这里没法解释,你所有JavaScript的请求头都这样写就对了,不会乱码  
    		XMLHttpRequest1.setRequestHeader("Content-Type",
    				"application/x-www-form-urlencoded");
    		//对于ajaxRequest,本js.html将会传递param1与param2给你。  
    		XMLHttpRequest1.send(null);
    		//对于返回结果怎么处理的问题  
    		XMLHttpRequest1.onreadystatechange = function() {
    			//这个4代表已经发送完毕之后  
    			if (XMLHttpRequest1.readyState == 4) {
    				//200代表正确收到了返回结果  
    				if (XMLHttpRequest1.status == 200) {
    					//json返回结果
    					var data=eval("("+XMLHttpRequest1.responseText+")");
    					document.getElementById("ip").innerHTML=data.ip;
    					document.getElementById("area").innerHTML=decodeURIComponent(data.area1)+decodeURIComponent(data.area2);
    				} else {
    					//如果不能正常接受结果,你肯定是断网,或者我的服务器关掉了。  
    					alert("网络连接中断!");
    				}
    			}
    		};
    	}
    	ajax();
    </script>
    index.jsp将会从ipGetTest.java中获取如下的Json:

    其中http://ipapi.sinaapp.com/api.php?f=text&ip=xxx这个新浪的api,如果f=text则返回文本信息,如果时f=json则返回json字符串,当然这个json字符串还需要自己如上代码所示地,需要通过decodeURIComponent讲utf-8编码,搞成中文。

    这里的起始地址与结束地址,就是该网段ip的起始地址与结束地址。


    关键是ipGetTest.java这个文件,这个文件分三步,首先通过request对象,获取用户访问的IP,之后通过Java向远程获取数据的技术获取网页内容。

    获取到的文本信息,直接打印到控制台,获取到Json信息直接打印到这个Servlet上面。

    package ipGet;
    
    import java.io.*;
    import java.net.URL;
    import java.util.Scanner;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.annotation.*;
    
    @WebServlet(name = "ipGetTest", urlPatterns = { "/ipGetTest" })
    public class ipGetTest extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	private Scanner scanner;
    
    	protected void service(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		// 这两行是为了这个Servlet能够正常打印数据的
    		PrintStream out = new PrintStream(response.getOutputStream());
    		response.setContentType("text/html;charSet=utf-8");
    		// 获取客户端ip
    		String ip = "";
    		if (request.getHeader("x-forwarded-for") == null) {
    			ip = request.getRemoteAddr();
    		} else {
    			ip = request.getHeader("x-forwarded-for");
    		}
    		System.out.print("你的ip为:" + ip + "\n");
    		// 获取ip归属地的文本信息
    		StringBuilder ipText = new StringBuilder("");
    		String url = "http://ipapi.sinaapp.com/api.php?f=text&ip=" + ip;
    		scanner = new Scanner(new URL(url).openConnection().getInputStream(),
    				"utf-8");
    		while (scanner.hasNext()) {
    			ipText.append(scanner.next());
    		}
    		System.out.println(ipText);
    		// 获取ip归属地的json信息
    		StringBuilder ipJson = new StringBuilder("");
    		url = "http://ipapi.sinaapp.com/api.php?f=json&ip=" + ip;
    		scanner = new Scanner(new URL(url).openConnection().getInputStream(),
    				"utf-8");
    		while (scanner.hasNext()) {
    			ipJson.append(scanner.next());
    		}
    		out.println(ipJson);
    
    	}
    
    }

    由于只能通过服务器语言才能获取到客户端的IP,因此,只能这样搞。

    这里Java获取远程信息,通过《【Java】打印流与缓冲区读者完成输入与输出到文件操作》(点击打开链接)中使用Scanner的方法改造了《【Java】读取网页中的内容》(点击打开链接)中通过缓冲区读者的方式来获取远程信息。

    展开全文
  • java获取请求IP

    千次阅读 2018-05-28 17:17:28
    X-Real-IP" )2: String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Pro....

    1:

    request.getHeader( "X-Real-IP" )

    2:

      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();  
        } `

    3:

     String ip=request.getHeader("x-forwarded-for");
                    if(ip==null){
                        ip=request.getRemoteAddr();
                    }
                    String ips[]=ip.split(",");`
                                    ip=ips[0];以上几种方式都是可以的,但是这些方法找到的IP都有可能不正确的,
    • 如果您的servlet运行在位于反向代理或负载均衡器后面的Web服务器上,那么可以将该Web代理配置为注入一个请求标头,该标头提供请求来自的IP地址。不同的反向代理将注入不同的头文件。请查阅您的(前端)服务器的文档。

    • 如果您的客户端使用(转发)代理,那么它可能会插入标头来说明客户端IP地址是什么......或者它可能不会。它插入的IP地址可能不正确。

    • 通过调用获得的值request.getRemoteAddr()将成为请求的上游直接的IP地址(最后一个代理的ip)

    您列出的所有标题都不是标准的,但“x-forwarded-for”被认为是事实标准; 即它是最有可能被代理插入的那个,等等......如果有什么东西被注入的话。

    最后,即使你确实得到了一个IP地址,它也不一定会帮助你。例如,如果客户端位于专用网络并通过NAT网关连接到互联网,则HTTP请求中的IP地址将是NAT服务器的地址...而不是实际的客户端IP。


    那么,这意味着什么?基本上,这意味着通常你不能可靠地找出请求源自的系统的IP地址。

    展开全文
  • java servlet 获取url

    千次阅读 2018-08-14 17:16:28
    返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数。 2、request.getRequestURI() 得到的是request URL的部分值,并且web容器没有decode过的 3、request.getContextPath() ...

    1、request.getRequestURL()

    返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数。

    2、request.getRequestURI()

    得到的是request URL的部分值,并且web容器没有decode过的

    3、request.getContextPath()

    返回 the context of the request.

    4、request.getServletPath()

    返回调用servlet的部分url.

    5、request.getQueryString()

    返回url路径后面的查询字符串

     

     

    示例:

    当前url:http://localhost:8080/CarsiLogCenter_new/idpstat.jsp?action=idp.sptopn

    1.request.getRequestURL() /http://localhost:8080/CarsiLogCenter_new/idpstat.jsp

    2.request.getRequestURI() /CarsiLogCenter_new/idpstat.jsp

    3.request.getContextPath() /CarsiLogCenter_new

    4.request.getServletPath() /idpstat.jsp

    5.request.getQueryString() /action=idp.sptopn

    转:https://blog.csdn.net/qq_21492635/article/details/70738742

    这里来说说用Servlet获取URL地址。在HttpServletRequest类里,有以下六个取URL的函数: 

    getContextPath 取得项目名 
    getServletPath 取得Servlet名 
    getPathInfo 取得Servlet后的URL名,不包括URL参数 
    getRequestURL 取得不包括参数的URL 
    getRequestURI 取得不包括参数的URI,即去掉协议和服务器名的URL 
     

    具体如下图:

    相对应的函数的值如下: 

    getContextPath:/ServletTest 
    getServletPath:/main 
    getPathInfo:/index/testpage/test 
    getRequestURL:http://localhost:8080/ServletTest/main/index/testpage/test 
    getRequestURI:/ServletTest/main/index/testpage/test 

    转:http://www.cnblogs.com/zhoushihui/p/5545637.html

     

    假设客户端请求的地址:http://localhost:8082/TestReq/MyServlet/?username=李雷&age=20
    
     
    
    request.getRequestURL http://localhost:8082/TestReq/MyServlet ---客户请求求的URL,不包括参数数据
    
     
    
    request.getRequestURI: /TestReq/MyServlet ---将URL的域名和尾随的参数截取掉,剩下的那部分就是URI
    
     
    
    request.getContextPath: /TestReq ---即斜杆加工程名
    
     
    
    request.getRealPath("/WEB-INF"): D:\omc_jboss\server\default\.\deploy\TestReq.war\WEB-INF ---工程部署的完整路径字符串接上参数中的字符串
    
     
    
    request.getMethod: GET ---HTTP请求的的方法名,默认是GET,也可以指定PUT或POST
    
    request.getAuthType: null ---返回包含用来保护servlet身份验证方案的名称,如BASIC和SSL,如果是null表示未不受保护
    
    request.getProtocol: HTTP/1.1 ---返回请求的协议名和版本,如HTTP/1.1等
    
    request.getScheme: http ---返回请求的方案名,如http,ftp,https等
    
    request.getServletPath: /MyServlet ---工程之后到参数之前的这部分字符串
    
    request.getPathInfo: null ---字符串包含与客户端发送请求的URL相关的额外信息
    
    request.getContentLength: -1 ---请求体内容的长度,只对POST和PUT类型的请求有效
    
    request.getContentType: null ---请求体内容类型
    
    request.getServerName: localhost ---服务器主机名
    
    request.getServerPort: 8082 ---服务器上web应用的访问端口
    
    request.getRemoteAddr: 127.0.0.1 ---发送请求的客户端主机的IP
    
    request.getRemoteHost: 127.0.0.1 ---发送请求的客户端主机名,如果不确定返回的是IP
    
    request.getRemoteUser: null ---如果对发送请求的客户端主机用户进行了身份验证,则返回登录信息,否则返回null
    
    request.getPathTranslated: null ---返回一个表示在服务器文件系统上的PathInfol转换成路径的字符串
    
    request.getQueryString: username=李雷&age=20 ---返回URL上的参数部分的字符串,必须是GET的请求才有效,不然报错
    
    这里的URL参数中带有中文,是通过字符转码的:String eQuery=new String(request.getQueryString().getBytes("ISO-8859-1"))
    
    response的响应内容:response.setContentType("text/html;charset=gbk"),才可以正常显示页面中文

    转:https://www.cnblogs.com/xiaolive/p/4974516.html

    展开全文
  • 在B模块中想要获取到用户主机的真实ip地址,以及浏览器页面上的请求路径 遇到问题 1、由于经过nginx代理,直接通过request.getRemoteAddr();获取到的是nginx服务器的地址,而不是客户端的真实ip地址 2、由于...

    请求过程

     
    用户在本地通过浏览器页面发起请求,请求经过nginx代理,转发到SpringCloud框架的微服务A模块,A服务模块通过Feign调用服务提供者B模块
     

    实现功能

     
    在B模块中想要获取到用户主机的真实ip地址,以及浏览器页面上的请求路径
     

    遇到问题

    1、由于经过nginx代理,直接通过request.getRemoteAddr();获取到的是nginx服务器的地址,而不是客户端的真实ip地址
    2、由于经过了feign请求,直接通过request.getRequestURL();获取到的是请求B模块的url路径,而不是客户端请求的路径。
     
     

    解决方法

    通过修改nginx的配置文件、将客户端的真实ip地址,客户端的真实请求路径放入请求的header中,在B模块获取各种参数时,通过获取request的请求头进而获取。
     

    1、修改nginx配置文件,并刷新配置

     
    在匹配的location {}模块中,添加如下参数
    proxy_set_header            Host $host;
    proxy_set_header            X-real-ip $remote_addr;
    proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header            uri  $uri;
    proxy_set_header            client_origin  $http_origin;

     

     
    2、在项目中进行接收
     
    String host = "127.0.0.1:8888";
    String ip = "127.0.0.1";
    String uri = "127.0.0.1:8888/login";
    HttpServletRequest request = null;
    RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
    
    
    
    
    if (requestAttributes != null) {
        request = ((ServletRequestAttributes) requestAttributes).getRequest();
        if (request!=null){
            ip = HttpClientUtil.getInstance().getClientIP(request);
            if (request.getLocalAddr()!=null&&!"".equals(request.getLocalAddr())){
                host = request.getLocalAddr() + ":" + request.getLocalPort();
            }
            String origin = request.getHeader("client_origin");
            String client_uri = request.getHeader("uri");
            if (origin!=null&&!"".equals(origin)&&client_uri!=null&&!"".equals(client_uri)){
                uri = origin + client_uri;
            }
        }
    }
    requestMap.put("host",host);
    requestMap.put("client_ip",ip);
    requestMap.put("uri",uri);

     

    getClientIP是自己写的一个帮助方法,如下

    /**
    * 获取真实的客户端ip
    * @param request
    * @return
    */
    public String getClientIP(HttpServletRequest request){
        String ip = request.getHeader("X-Forwarded-For");
        if (!StringUtils.isEmpty(ip) && !"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");
        if (!StringUtils.isEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
            return ip;
        }
        return request.getRemoteAddr();
    }

     

     
        一般来说,经过上面的设置之后就可以取到nginx中设置的header头部参数了,但是我取到的值竟然为null
        后来经过查证才明白,在通过feign进行服务的远程调用时,会把header给丢失了,纳尼?为什么?这不是难为我这个18岁的老同志吗。我劝feign这个年轻人要耗子尾汁,但是没有办法,bug还是要修复的。
     

    解决办法

     
        在微服务A模块,及即eign远程调用的消费者端,添加一个拦截器,对A服务接收到的request请求进行拦截,将其加入到RequestTemplate中去
     

    拦截器

    
    package com.github.wxiaoqi.security.auth.configuration;
    
    
    import feign.RequestInterceptor;
    import feign.RequestTemplate;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.context.request.RequestContextHolder;
    import org.springframework.web.context.request.ServletRequestAttributes;
    
    
    import javax.servlet.http.HttpServletRequest;
    import java.util.Enumeration;
    @Slf4j
    @Configuration
    public class FeginHeaderInterceptor implements RequestInterceptor {
    
        @Override
        public void apply(RequestTemplate template) {
            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
                    .getRequestAttributes();
            HttpServletRequest request = attributes.getRequest();
            Enumeration<String> headerNames = request.getHeaderNames();
            if (headerNames != null) {
                while (headerNames.hasMoreElements()) {
                    String name = headerNames.nextElement();
                    String values = request.getHeader(name);
                    template.header(name, values);
                }
            }
            Enumeration<String> bodyNames = request.getParameterNames();
            StringBuffer body =new StringBuffer();
            if (bodyNames != null) {
                while (bodyNames.hasMoreElements()) {
                    String name = bodyNames.nextElement();
                    String values = request.getParameter(name);
                    body.append(name).append("=").append(values).append("&");
                }
            }
            if(body.length()!=0) {
                body.deleteCharAt(body.length()-1);
                template.body(body.toString());
            }
        }
    
    
    
    
    }
     

     

    配置拦截器

    在A模块,即feign消费者的远程接口调用方法中,设置此拦截器
     
    @FeignClient(value = "ace-admin",configuration = FeginHeaderInterceptor.class)
    public interface IUserService {
      @RequestMapping(value = "/api/user/validate", method = RequestMethod.POST)
      public UserInfo validate(@RequestBody JwtAuthenticationRequest authenticationRequest);
    }

     

        以上的配置完成后,就可以实现在feign的微服务提供者端,获取真实客户端的各种参数了。我看有的人说还需要 指定Feign的隔离策略为:SEMAPHORE,因为ThreadLocal什么的,但是我没有设置就成功了,所以大家可以自己尝试下
        其实无论是通过nginx代理获取到真实ip地址,还是feign远程调用导出的header丢失问题,大家都有分享自己的处理方法。但是像我这种倒霉的,既遇到nginx代理导致真实ip被覆盖,又因为feign导致header丢失的情况,没有太多人出现,所以就总结一下吧!
        不过还是有很多的疑惑,比如:nginx里有哪些$开头的参数,feign为什么会把header丢失了,如果大家知晓的话,还请赐教。
     
     
     
     
     
     
    展开全文
  • servlet调用的几种简单方式小总结

    千次阅读 2019-04-10 19:57:30
    servlet调用的几种简单方式 这里总结的是我在学习web开发的过程中需要用到的几种比较常见的用于转发和调用servlet的方式,这些方式的使用率非常高。在网上总结了相关的方法,大多对于初学者不是特别的友好,自己总结...
  • Request获取用户真实IP

    千次阅读 2019-01-10 15:34:56
    Servlet里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,Nginx等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理...
  • 这几天,这处理Jaave Servlet调用WebService的时候,碰到返回值为空的问题,但是,新建的Java项目,使用同样的方法调用,缺能够返回正确的值。 Servlet中的代码: package dbconn; import java.io....
  • Servlet获得请求中的数据 有了JSP之后,Servlet不再用来输出动态页面。然而目前还没有学习到JSP,我们暂时还是使用Servlet输出一些动态页面 ,作为测试使用。 Servlet最常见的作用就是获得请求中的数据。 HTTP协议中...
  • import javax.servlet.http.HttpServletRequest; /** * 自定义访问对象工具类 * * 获取对象的IP地址等信息 * @author rainyday * */ public class ... * 获取用户真实IP地址,不使用reques...
  • 前两天的项目中需要记录用户的登录信息,希望把用户的浏览器和操作系统等资料记录下来,开始的时候我是通过以下代码获取用户的浏览器和操作系统的。。   String Agent = request.getHeader("User-Agent"); ...
  • 在Apaceh XML-RPC获取客户端的ip

    千次阅读 2011-10-21 12:28:58
    XML-RPC本身是一个Servlet,所以要获得调用ip,可以在Servlet调用入口处doGet或doPost方法中获取获取到以后还需要将其存储起来,并提供一个接口供外部调用,可以考虑用ThreadLocal来存储,并提
  • idea,java获取ip地址

    2018-03-22 17:01:41
    使用intellij idea java开发软件,通过servlet获取访问用户的真实ip地址
  • protected String ... String ip = null; // X-Forwarded-For:Squid 服务代理 String ipAddresses = request.getHeader("X-Forwarded-For"); if (ipAddresses == null || ipAddresses.length() ==...
  • 1.通过HttpServletRequest获取远端IP地址(方法一般写在service里供调用)引入包:import javax.servlet.http.HttpServletRequestpublic static String getRemoteIp(HttpServletRequest request) {
  • servlet--http接口简单的创建及调用

    千次阅读 2018-07-09 16:47:34
    现在简单的说说servlet中http接口的创建及调用,便于大家理解,使用。先说说服务端,就是提供服务的代码:pom.xml &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;junit&...
  • 以前用model1模式开发时,很容易实现,就是在JSP中用request.getRemoteAddr()获取用户IP地址后,调用一个bean中的方法(将刚才获取IP作为参数),直接写入数据库就可以了。 但现在用MVC模式开发,那么写入数据库...
  • 获取访问者的ip地址 这一次,依然是一个工具类,主要是用来获取当前用户访问服务器的ip地址,可以用于更快的查找出是在那一台电脑上进行操作的那些东西。 package com.fashion.fox.ctr; import javax.servlet....
  • 获取HttpServletRequest中请求的ip

    千次阅读 2019-11-20 13:57:31
    * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址; * * @param request * @return * @throws IOException */ public final static String getIpAddress(HttpServletRequest request) { String ip...
  • 浏览器发送http请求,调用服务器servlet程序的流程: 1.首先了解URL的组成:(图片网上找的) 2.浏览器查询windows的host文件,根据URL的主机名查找对应IP,如果找到了,连接对应的IP。如果没找到,去查询DNS...
  • JAVA获取客户端IP

    千次阅读 2020-06-07 21:30:47
    import javax.servlet.... * 获取访问者IP * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。 * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-F
  • 1 import javax.servlet.http.HttpServletRequest; 2 3 /** 4 * 自定义访问对象工具类 5 * 6 * 获取对象的IP地址等信息 7 * @author X-rapido ...13 * 获取用户真实IP地址,不使用request.getRemoteAddr().
  • Servlet

    2018-09-09 22:57:19
    Servlet Servlet 是一个运行于 Web 服务器中的特殊 Java 程序,它接收和响应每个客户端的请求,双方遵循 HTTP 协议。 Servlet 的作用 动态向客户端输出 Web 页面的内容,是创建动态资源的常用技术之一。 ...
  • Netty获取客户端IP

    万次阅读 2018-04-19 10:54:30
    Netty4.X 获取客户端IP 原创 laukinghaozi 2014-09-20 17:21:57 评论(0) 8514人阅读 最近使用netty-4.0.23.Final 版本编写服务端代码,有个获取客户端代码的小需求,...
  • 用Java来获取访问者真实的IP地址

    万次阅读 多人点赞 2018-04-14 11:41:01
    主要说明在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,...
  • 1.获取访问者的ip地址: 不多说直接上代码,详解见注释 package com.xr.util; import lombok.extern.slf4j.Slf4j; import javax.servlet.http.HttpServletRequest; import java.net.*; import java.util....
  • java springboot中调用第三接口

    万次阅读 热门讨论 2018-12-28 14:37:18
    调用第三接口,记录下自己写的不然忘记。依然是废话不喜欢多说,上代码: application.yml配置 server: port: 7888 servlet: context-path: /gene tomcat: remote-ip-header: x-forward-for uri-encoding: ...
  • servlet

    千次阅读 2016-05-26 11:20:20
    本节简单介绍servlet,对于监听器、过滤器等在后面的一些章节将会讲到,这里不多介绍 目录:  |--Servlet的简单介绍  |--什么是servlet?  |--servlet的工作流程  |--servlet接口的方法  |--实现servlet的方式 ...
  • 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。 但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用...
  • 获取访问IP工具类

    千次阅读 2018-07-16 15:29:08
    package util; import java.net.InetAddress; import java.net.UnknownHostException; import javax.servlet.http.HttpServletRequest; ...public class CusAccessObjectUtil { ... * 获取用户真实IP地址,不使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,578
精华内容 13,831
关键字:

servlet获取调用方ip