如何取得正确的外网IP

caochen1985 2010-08-23 10:30:13
最近公司有个项目,内网的IP是能够正确取得,外网的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;
}
希望有经验的朋友帮忙下,谢谢
...全文
165 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
caochen1985 2010-08-24
  • 打赏
  • 举报
回复
谢谢大家了,后来发现是程序其他地方有错误。。。
xuxianyue 2010-08-23
  • 打赏
  • 举报
回复
代理是外网吗?
数据包中只有一个源IP地址
弑忆 2010-08-23
  • 打赏
  • 举报
回复
学习一下
ittq2010 2010-08-23
  • 打赏
  • 举报
回复
有代理的
caochen1985 2010-08-23
  • 打赏
  • 举报
回复
如果是通过代理连接的,直接提取出来的值是错误的
yibo2010 2010-08-23
  • 打赏
  • 举报
回复
直接可以获取出来 , 没你写的那么麻烦 。 request.getRemoteAddr();
singlesteven 2010-08-23
  • 打赏
  • 举报
回复
request.getRemoteAddr();
yibo2010 2010-08-23
  • 打赏
  • 举报
回复
stuts 中 有个方法 可以获取 客户端的ip


request.getRemoteAddr();
caochen1985 2010-08-23
  • 打赏
  • 举报
回复
本来就是需要拿客户的IP,内网的拿到的是正确,外网的老是不对
Sunny_kaka 2010-08-23
  • 打赏
  • 举报
回复
你这样是拿到请求服务的客户的IP.
你如果拿自己服务器的IP要用Runtime类运行ipconfig命令(windows)
shao_luck 2010-08-23
  • 打赏
  • 举报
回复
路过。
刘地瓜 2010-08-23
  • 打赏
  • 举报
回复
这个不是太了解

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧