java得到客户端IP问题

问题描述

目前我得到客户端的IP方法是这么定义的,但100个IP记录中,还有那么几个IP获取不了。想了半天没找到具体原因,各大帮忙想想?public static String getIpAddr(HttpServletRequest request) throws UnknownHostException {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();}if(ip != null && ip.equalsIgnoreCase("0:0:0:0:0:0:0:1")) { ip =InetAddress.getLocalHost().getHostAddress().toString();}return ip;}

解决方案

还可能设置X-Real-IPhttp://relistan.com/http-header-hell-starring-x-real-ip-and-x-forwarded-for/
解决方案二:
已经很全面了,表示关注

时间: 2024-09-04 10:44:06

java得到客户端IP问题的相关文章

php如何获取客户端IP地址

php获取客户端IP地址的几种方法 阅读php获取客户端IP地址的几种方法, <?php $iipp=$_SERVER["REMOTE_ADDR"]; echo $iipp; ?> <?php $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($

java实现根据ip地址获取地理位置_java

最近项目某个功能需要根据ip地址从第三方接口获取详细的地理位置,从网上找了很多例子,主要接口有新浪的,淘宝的,腾讯的.试了淘宝的,如果是数量级小的还可以,如果数量级达到上十万级就速度慢了,会导致系统崩溃.下面例子是新浪的,例子不是适合每个项目,需要改一下. /** ipSearchUrl=http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=(这是新浪的接口地址) 在项目中新浪的接口地址没有直接写死,而是去读属性文件. *

jsp获取客户端IP地址的方法_JSP编程

本文实例讲述了jsp获取客户端IP地址的方法.分享给大家供大家参考,具体如下: public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request

JAVA获得域名IP地址的方法_java

本文实例讲述了JAVA获得域名IP地址的方法.分享给大家供大家参考.具体如下: import java.net.InetAddress; import java.net.UnknownHostException; public class TestInetAddress { InetAddress myIpAddress = null; InetAddress[] myServer = null; public static void main(String args[]) { TestInet

JAVA如何获取访问用户的客户端IP(适用于公网与局域网)

/** * 获取访问用户的客户端IP(适用于公网与局域网). */ public static final String getIpAddr(final HttpServletRequest request) throws Exception { if (request == null) { throw (new Exception("getIpAddr method HttpServletRequest Object is null")); } String ipString = r

检测客户端显示器分辨率、浏览器类型和客户端IP

分辨率|客户端|浏览器|显示 下面的代码实现了检测客户端显示器分辨率.浏览器类型和客户端IP的功能.你可以把客户端信息保存到Session,ViewState等中以便在其它的页面直接使用. ClientPeek.aspx <%@ Page language="vb" EnableViewState="false" Codebehind="ClientPeek.aspx.vb" AutoEventWireup="false"

Java获取用户ip

Java 如何获取客户端IP呢?  核心思想:通过HTTP的request来获取下面是我总结的几种方法: Java代码   /**       * 获取客户端ip地址(可以穿透代理)       *        * @param request       * @return       */       public static String getRemoteAddr(HttpServletRequest request) {           String ip = request.

NGINX前端代理TOMCAT取真实客户端IP

nginx前端代理tomcat取真实客户端IP 使用Nginx作为反向代理时,Tomcat的日志记录的客户端IP就不在是真实的客户端IP,而是Nginx代理的IP.要解决这个问题可以在Nginx配置一个新的Header,用来存储$remote_add,然后再Tomcat获取记录这个值. 新增nginx配置.   server { listen 80; server_name www.xxxxx.com; location / { proxy_pass http://IP:8080/; proxy

PHP下得到客户端IP的方法

getenv -- Gets the value of an environment variable Description string getenv ( string varname ) Returns the value of the environment variable varname, or FALSE on an error. <?php// Example use of getenv()$ip = getenv('REMOTE_ADDR');// Or simply use