相关疑难解决方法(0)

如何在servlet中获取客户端的远程地址?

有什么办法可以让客户端的原始IP地址进入服务器吗?我可以使用request.getRemoteAddr(),但我似乎总是得到代理或Web服务器的IP.

我想知道客户端用来连接我的IP地址.无论如何我能得到它吗?

proxy client servlets ip-address

66
推荐指数
5
解决办法
7万
查看次数

获取请求的ip的正确方法是什么

我找到了一些在servlet中获取ip的不同方法.但我不知道哪一个是正确的,为什么.

1:

request.getHeader( "X-Real-IP" )
Run Code Online (Sandbox Code Playgroud)

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)) …
Run Code Online (Sandbox Code Playgroud)

java ip

24
推荐指数
2
解决办法
6万
查看次数

从 HttpServer 获取客户端 IP

我需要知道客户端的 IP 地址,这是我的鳕鱼

    public static void main(String[] args) throws Exception {
    server = HttpServer.create(new InetSocketAddress(8000), 0);
    server.createContext("/", new MyHandler());
    server.setExecutor(null); // creates a default executor
    server.start();
    System.out.println("Client ip is: " + server.getAddress().getAddress());
}
Run Code Online (Sandbox Code Playgroud)

处理程序:

    public static class MyHandler implements HttpHandler {

    @Override
    public void handle(HttpExchange t) throws IOException {

    t.getRemoteAddress().getAddress(); // t is 0:0:0:0:0:0:0:
    }
}
Run Code Online (Sandbox Code Playgroud)

结果: Client ip is: /0:0:0:0:0:0:0:0

为什么我不能得到真正的客户IP?

java

5
推荐指数
1
解决办法
8038
查看次数

用于IP地址的应用引擎请求标头

我有一个运行REST Web服务的应用程序引擎应用程序.我想从我的Web服务处理的所有请求中提取IP地址.

来自javax.servlet.http.HttpServletRequest我正在尝试提取检查"X-Real-IP"的IP地址,如果为空或"未知",则检查"X-Forwarded-For"标题列表中的第一个ip空或"未知"从request.getRemoteAddr()获取它.

我以为我覆盖了所有的情况,但我仍然得到像10.xxx,或127.0.0.1或未知的IP地址.

我知道应用程序引擎应用程序正在负载均衡器后面运行,实例是动态的,我当然在请求中省略了一个标题,因为我可以在日志中看到原始的IP地址(来自谷歌).

编辑:我正在处理的所有请求都是直接请求服务(没有队列或cron请求).

想知道其他标题要检查吗?

谢谢 .

java google-app-engine servlets http request

5
推荐指数
1
解决办法
785
查看次数

Tomcat中的HttpServletRequest.getRemoteAddr()返回IPv6格式的IP地址

Tomcat中的HttpServletRequest.getRemoteAddr()返回IPv6格式的IP地址,但我想配置它返回IPv4.

我通过'localhost'访问servlet.如果我通过'127.0.0.1'访问它,则返回IPv4格式的IP地址(请参阅此答案).

环境:

  • Windows 7 x64
  • Tomcat 6.0.35-windows-x64

我的LAN连接属性: 已检查IPv6,但如果我将其检查,则它不起作用.

我的LAN连接属性

java tomcat ipv4 ipv6 windows-7-x64

2
推荐指数
1
解决办法
9677
查看次数