`
尘枉_yjava
  • 浏览: 71715 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

request.getRemoteAddr()和request.getRemoteHost()

    博客分类:
  • web
阅读更多
request.getRemoteAddr()是获得客户端的ip地址。
request.getRemoteHost()是获得客户端的主机名。

关于request.getRemoteHost的性能问题

 
  在一个业务系统中使用request.getRemoteHost(),会造成使用该方法使用该功能模块时速度特别慢
  
    (测试功能时发现该功能模块中对应的域名获取的是host文件中从前往后第一个与本机IP一致的域名)

解释如下:
一个客户应用,在运行过程中反映出现性能问题,经定位,性能瓶颈出现在应用代码中的request.getRemoteHost()这一行,执行这一行需要花费大约5秒。通过CTRL+BREAK输出当前堆栈,发现底层代码有去作dns查询的动作java.net.InetAddress.getHostFromNameService(InetAddress.java:532),从而导致慢。



       解决办法有2个:



       1、将request.getRemoteHost()改为request.getRemoteAddr() 。



       2、提供apusic的优化patch,并在启动脚本中添加参数。

按方法1修改后并在现场验证问题已解决,第二种方法没有试验有待考证。
分享到:
评论

相关推荐

    java获得客户端真实的ip地址

    我们知道在jsp里,获取网页客户端的ip地址的方法是:request.getremoteaddr(),这种方法在大部分情况下都是有效的。但是在通过了apache,squid等反向代理软件就不能获取到客户端的真实ip地址了。如果使用了反向代理...

    获取用户真实IP地址,不使用request.getRemoteAddr()的原因是有可能用户使用了代理软件方式避免真实IP地址

    获取请求接口的真实ip 地址工具类。适合所有Java开发人员。针对接口的ip 地址的获取。

    asp.net getRemoteAddr()与 getRemoteHost()的区别

    getRemoteAddr():获得客户端的IP地址 getRemoteHost():获得客户端电脑的名字,若失败,则返回客户端电脑的IP地址 InetAddress ia = InetAddress.getLocalHost(); String iad = ia.getHostAddress();//主机IP ...

    WEB15-request.rar

    案例二、完成登录错误信息的回显。 4.通过request获得请求行 获得客户端的请求方式:String getMethod() 获得请求的资源: ...request.getRemoteAddr() --- 获得访问的客户端IP地址 通过request获得请求头

    Java中使用HttpRequest获取用户真实IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理...

    Java获取客户端IP及Mac地址(同网段).rar

    在Controller类获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用...

    Java正确获取客户端真实IP方法整理.docx

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将...

    org.apache.commons.lang3.StringUtils.jar

    java获取客户端ip(经过多次代理)提示StringUtils cannot be resolved 需要先 import org.apache.commons.lang3.StringUtils; /* 内含 common-lang3.jar commons-... return request.getRemoteAddr();  }

    获取访问地址中ip

    获取请求头中ip,不同方法:request.getRemoteAddr(),request.getHeader("x-forwarded-for")

    用Java来获取访问者真实的IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用...

    中创笔试9套题+答案

    A、request.getRemoteAddr() B、Request.ServerVariables("REMOTE_ADDR") (5)String a=new String("foo"); String b=new String("foo"); 请问System.out.println(a1= =b1)打印出什么?b A、true B、false C、1 ...

    Java获取客户端的真实IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件不能获取到客户端的真实IP地址了。像移动网关一样,iisforward这个...

    JSP如何获取客户端真实IP地址

    在JSP中,获取客户端IP的方法为:request.getRemoteAddr()。这种方法在大部分情况下都是有效的,但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将...

    获取对方的IP的方法

    如何获取对方的IP的方法,其实也不难的,代码如下: ip = request.getRemoteAddr();

    JSP 获取用户的真实IP两种实现方法详解

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Nagix等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 ...

    java 获取客户端ip mac地址

    获取客户端ip地址( 这个必须从客户端传到...jsp页面下,很简单,request.getRemoteAddr() ; 因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换java 获取客户端ip mac地址

    java获取ip地址示例

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了

    jsp九大内置对象

     String clientName =request.getRemoteHost()  1.08 getServerName() 获取服务器名称。  String serverName =request.getServerName()  1.09 getServerPort() 获取服务器的端口号。  int serverPort =...

    获取客户端IP

    在很多应用下都可能有需要将用户的真实IP记录下来,这时就要获得用户的真实IP地址,在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等...

    jsp Request获取url信息的各种方法对比

    从Request对象中可以获取各种路径信息,以下例子:  假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下...String remoteAddress=request.getRemoteAddr(); String serv

Global site tag (gtag.js) - Google Analytics