为了账号安全,请及时绑定邮箱和手机立即绑定

获取客户端的IP地址

获取客户端的IP地址

弑天下 2019-09-02 15:26:18
我正在使用JSP,Servlets(Container:Glassfish)开发一个Web应用程序,我需要在其中获取客户端IP Address。我正在获取客户端的IP地址,因为我只想在有办公室的计算机上访问某些页面(如客户维护表单),我想限制访问办公室以外的那些页面。以下是我的代码到目前为止:WAY1String ipAddress =  request.getRemoteAddr();System.out.println("IP Address: "+ipAddress);way2String ipAddress=null;String getWay = request.getHeader("VIA");   // GatewayipAddress = request.getHeader("X-FORWARDED-FOR");   // proxyif(ipAddress==null){    ipAddress = request.getRemoteAddr();}System.out.println("IP Address: "+ipAddress);different IP Address每次重新启动计算机时,上面的代码都会给我(关机 - >启动或重启)。我变得IP6喜欢:fe80:0:0:0:20ca:1776:f5ff:ff15%13让我知道这段代码有什么问题?
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

我使用以下静态帮助器方法来检索客户端的IP:


public static String getClientIpAddr(HttpServletRequest request) {  

    String ip = request.getHeader("X-Forwarded-For");  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("Proxy-Client-IP");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("WL-Proxy-Client-IP");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("HTTP_X_FORWARDED_FOR");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("HTTP_X_FORWARDED");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("HTTP_X_CLUSTER_CLIENT_IP");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("HTTP_CLIENT_IP");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("HTTP_FORWARDED_FOR");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("HTTP_FORWARDED");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("HTTP_VIA");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getHeader("REMOTE_ADDR");  

    }  

    if (ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) {  

        ip = request.getRemoteAddr();  

    }  

    return ip;  

}


查看完整回答
反对 回复 2019-09-02
?
温温酱

TA贡献1752条经验 获得超4个赞

我喜欢这个,你可以尝试一下


public String getIpAddr(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.getRemoteAddr();      

   }      

   return ip;      

}   


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 432 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号