怎么在servlet中获取客户端ip,我用这个方法返回的是0.0.0.0.0.0./**
 * 获取客户端Ip地址
 * 
 * @return
 */
protected String getIpAddr(HttpServletRequest request) {
// 通过请求头获取ip地址
String ip = request.getHeader("x-forwarded-for");
// 判断ip地址是否是代理地址
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
// 判断ip地址是否是代理地址
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
// 判断ip地址是否是代理地址
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}1

解决方案 »

  1.   

    Locale languageType=request.getLocale();//获取用户语言
    String localIp=request.getLocalAddr();//获取本地ip
    int localPort=request.getLocalPort();//获取本地的端口
    String localName=request.getLocalName();//获取本地计算机的名字
    String remoteIp=request.getRemoteAddr();//获取客户端的ip搜索
    int remotePort=request.getRemotePort();//获取客户端的端口号
    String serverName=request.getRemoteHost();//获取远程计算机的名字
    System.out.println("语言类型->"+languageType);
    System.out.println(localName+" "+serverName);
    System.out.println(localIp+":"+localPort+" "+remoteIp+":"+remotePort)}
      

  2.   

    String remoteIp=request.getRemoteAddr();//获取客户端的ip搜索 用这个方法获取到的是0.0.0.0.0.0.0.1啊
      

  3.   

    测试的时候不要用localhost/127.0.0.1,用ip地址
      

  4.   

    IPv6的地址其他相关的信息给点啊,比如客户端是什么。整个开发环境大致是什么,说出来大家探讨一下。我前阵子也在做这个。