jquery中获取客户端ip

fs2046 2012-11-01 04:58:44
在网上查到都是浏览器限制的,要么就是需要用其他网站的接口,那样依耐性太强了,有没有直接可以在前台获取ip的,
而且需要说的是我的服务器是有代理服务器的,我要获取的是本地局域网所对应外网ip
...全文
340 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjflinchong 2012-11-06
  • 打赏
  • 举报
回复
根本没法获取。 建议从服务器取 这个ip。 然后传到客户端。
fs2046 2012-11-06
  • 打赏
  • 举报
回复
还是不对呀,获取的代理服务器的ip呀
MiceRice 2012-11-01
  • 打赏
  • 举报
回复
浏览器获取IP的,基本上要靠ActiveX,而且价值不大,因为你最后往往得到的是:192.168.x.x

基本上还是要从服务器端才能得到目标主机的公网IP。

由于你用了反向代理,所以要去HTTP-HEAD中查找,类似:

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;
}


当然,如果你的反向代理服务器没有增加这个信息,那就没戏了,需要修改反向代理服务器配置。

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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