wwwsoftwares 2010-10-12 10:51
浏览 239
已采纳

java获取ip

java为什么通过地下的获取到的结果无论如何都是 127.0.0.1

为什么www.ip138.com可以正常获取客户端的ip呢。
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;

}

  • 写回答

2条回答 默认 最新

  • enet_java 2010-10-12 11:06
    关注

    你是在本机上访问的吧!!

    如果你的url是 http://localhost:port/context/xxx.xxx 或者是http://127.0.0.1:port/context/xxx.xxx

    你获取到的就是本机127.0.0.1,获取不到你的外网IP的。

    而www.ip138.com 获取的是你外网的IP地址。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?