在JSP中如何得到设置了代理服务器的客户端的真实IP

在JSP中如何得到设置了代理服务器的客户端的真实IP,第1张

JSP获取用户真实IP地址

(大致原理是这样,但我没有测试过。)

String strIP = "";

String strFF = requestgetHeader("X_Forwarded_For");

if(strFFequals("") || strFF"unknown")>=0 ){

strIP = requestgetLocalAddr();

} else if (strFFindexOf(",")>=0 ){

strIP = strFFsubstring(0, strFFindexOf(","));

} else if (strFFindexOf(";")>=0 ){

strIP = strFFsubstring(0, strFFindexOf(";"));

} else {

strIP = strFF;

}

strIP = strIPsubstring(0, 30)trim();

String ip = requestgetHeader("x-forwarded-for");

if(ip == null || iplength() == 0 || "unknown"equalsIgnoreCase(ip)) {

ip = requestgetHeader("Proxy-Client-IP");

}

if(ip == null || iplength() == 0 || "unknown"equalsIgnoreCase(ip)) {

ip = requestgetHeader("WL-Proxy-Client-IP");

}

if(ip == null || iplength() == 0 || "unknown"equalsIgnoreCase(ip)) {

ip = requestgetRemoteAddr();

}

这样获取的ip就是内网的IP了 请记住我们的团队

app获取到对方的后端ip

在 jsp 里,获取客户端的IP地址的方法是: request getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache, Squid 等 反向代理 软件就不能获取到客户端的真实IP地址了。

如果使用了反向代理软件,将的URL反向代理为的URL时,用requestgetRemoteAddr()方法获取的IP地址是:127001或1921681110,而并不是客户端的真实IP。

经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的>

这样不行吗

InetAddress addr = InetAddressgetLocalHost();

String ip=addrgetHostAddress()toString();//获得本机IP

/ 构造函数 / privateInternetProtocol(){ } / 获取客户端IP地址<br> 支持多级反向代理 @paramrequest >

以上就是关于在JSP中如何得到设置了代理服务器的客户端的真实IP全部的内容,包括:在JSP中如何得到设置了代理服务器的客户端的真实IP、jsp获取客户端局域网的ip、app获取到对方的后端ip等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9570659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存