借用他方服务器获取客户端IP

前段时间在我做一项目是遇到这样一个问题,Server要获取客户端IP,直接在Server上获取不到客户端真实IP,要解决这一问题,本人在网上查了一翻,有好多说了好多的方法,但是我试了不知怎么都不成功,所以本人就用了这样一套方法。就是用其他可以获取到IP的Server代替解决,
1、在代替Server上放一个获取IP的文件,如叫getIP.jsp
内容如下:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%
String ip="";
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();
}
%>

window.getIp= function (){
return("<%=ip%>");
}
2、在本地Server上只须获得这个js方法的返回值,然后再用ajax传递到需要处理该值的地方即可。
内容如下:
<script language="javascript" src="http://192.168.0.4/getIP.jsp"></script>
<script type="text/javascript">
var strIp;
strIp=window.getIp();
checkUser(strIp);

var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject) //IE
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest) //Other Explorers
{
xmlHttp=new XMLHttpRequest();
}
}
function checkUser(strIp)
{
createXMLHttpRequest();
xmlHttp.open("post","save.jsp?getIp="+strIp+",true);
xmlHttp.send();
}
</script>
测试输出
save.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%
String ip="";
ip=getParameter("getIp");
System.out.println("您的IP是:"+ip);
%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值