我们常常在做统计或者是一些web开发的时候常常会用到 request.getRemoteAddr() 来获取远程的IP地址。大家可能会遇到一些问题。 首先可能就是在使用这个方法返回的值不是我们想要的IP,而是 0:0:0:0:0:0:0:1 这么一串值。如果大家有了解TCP/IP协议的话,可能会知道这个是IPV6的协议。可惜我们是想需要的是类似127.0.0.1这样的IP地址。其实这种情况只有在你的服务器和你的客户端是同一台机器所导致的,只有在这种情况下才会这样。原因是因为 /etc/host 这个文件,这个文件中有这么两行:
# 127.0.0.1 localhost
# ::1 localhost
这两个其实就是1个是针对IPV6的,一个是针对IPV4的。如果是win7系统的话 默认会采用IPV6的 因此我们这个地方获取到的值是 0:0:0:0:0:0:0:1,XP则不会出现这个问题。 如果采用win7的解决办法是删除 # ::1 localhost 这行内容,或者是保持这一行为注释状态,并且取消 # 127.0.0.1 localhost 这一行的 #号注释。网上大部分文章都说的这里的处理办法是 取消这一行的注释。如果单单只是取消注释的话,表示采用IPV6的协议来连接,可能会导致你的数据库连接出错。
当然这个地方主要是win7 才会遇到的问题。因为只有win7是采用的IPV6。
分享到:
相关推荐
获取请求接口的真实ip 地址工具类。适合所有Java开发人员。针对接口的ip 地址的获取。
在Controller类获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用...
然而,在使用如Apache、Squid等反向代理服务器的情况下,直接使用`request.getRemoteAddr()`获取到的往往是代理服务器自身的IP地址,而不是客户端的真实IP地址。 #### 获取客户端真实IP的基本原理 在不使用反向...
我们知道在jsp里,获取网页客户端的ip地址的方法是:request.getremoteaddr(),这种方法在大部分情况下都是有效的。但是在通过了apache,squid等反向代理软件就不能获取到客户端的真实ip地址了。如果使用了反向代理...
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理...
案例二、完成登录错误信息的回显。 4.通过request获得请求行 获得客户端的请求方式:String getMethod() 获得请求的资源: ...request.getRemoteAddr() --- 获得访问的客户端IP地址 通过request获得请求头
#### 一、理解 `request.getRemoteAddr()` 和 `request.getHeader("x-forwarded-for")` 1. **`request.getRemoteAddr()`**:此方法返回的是客户端与服务器建立连接时的 IP 地址,如果请求是通过代理服务器转发的,...
- `request.getRemoteAddr()`: 返回发起请求的客户端IP地址。 - `request.getRemoteHost()`: 返回发起请求的客户端主机名。 2. **编码与内容信息** - `request.getCharacterEncoding()`: 返回请求的字符编码集...
然而,在实际应用场景中,客户端请求往往经过了多级代理(如Apache、Squid等),这使得直接使用`request.getRemoteAddr()`方法获取到的IP地址并不是客户端的真实IP,而是代理服务器的IP地址。 例如,在使用Apache或...
尤其是在存在代理服务器的情况下,传统的`request.getRemoteAddr()`方法可能无法直接获取到客户端的真实IP地址。本文将详细介绍如何在不同的场景下获取客户端的真实IP地址。 #### 传统方法:`request.getRemoteAddr...
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将...
然而,在实际应用中,很多情况下用户的请求会经过反向代理服务器(如Nginx、Squid等),这使得直接使用`request.getRemoteAddr()`方法获取到的IP地址往往并不是客户端的真实IP地址。 #### 二、问题分析 当客户端...
getRemoteAddr():获得客户端的IP地址 getRemoteHost():获得客户端电脑...//主机名 请问我在JSP页面中使用如下语句: System.out.println(“request.getRemoteAddr(): ” + request.getRemoteAddr()); System.out.pri
然而,在通过代理服务器(如Apache、Squid等)转发请求的情况下,直接使用`request.getRemoteAddr()`可能无法获取到客户端的真实IP地址。本文将详细介绍如何在Java中正确地获取访问者的实际IP地址。 #### 方法一:...
解决这个问题的方法是,使用`request.getHeader("x-forwarded-for")`方法来获取客户端的IP地址。如果这个方法返回null,那么我们可以使用`request.getRemoteAddr()`方法来获取IP地址。 在使用多级反向代理的情况下...
在JSP中,获取客户端IP地址的方法是使用request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是,如果使用了反向代理软件,如Apache、Squid等,request.getRemoteAddr() 方法获取的IP地址将不是客户端的...
在 JSP 中,获取客户端的 IP 地址可以使用 `request.getRemoteAddr()` 方法。但是,这种方法在大部分情况下都是有效的,但是在通过了 Apache、Squid 等反向代理软件时就不能获取到客户端的真实 IP 地址了。在这种...
#### 方法一:基本的`request.getRemoteAddr()` 最简单的方式是通过`HttpServletRequest`对象调用`getRemoteAddr()`方法来获取客户端IP地址。这个方法在大多数情况下能够正确地返回客户端的IP地址,但在客户端请求...
#### 使用 `request.getRemoteAddr()` `request.getRemoteAddr()` 是一种简单但并不总是准确的方法。此方法返回客户端的 IP 地址,但在经过代理服务器的情况下(如 Apache 或 Squid),可能会返回代理服务器的 IP ...
String ipAddress = request.getRemoteAddr(); System.out.println("客户端IP地址为:" + ipAddress); } } ``` 在上述代码中,`HttpServletRequest`的`getRemoteAddr()`方法用于获取客户端的IP地址。然而,如果...