java如何获取https协议的客户端ip地址

java如何获取https协议的客户端ip地址,第1张

嗨 你好

据网上了解到:

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

如果使用了反向代理软件,将>

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了 请记住我们的团队

//得到用户的浏览器名

String

userbrowser

=

stnextToken();

//得到用户的 *** 作系统名

String

useros

=

stnextToken();

取得本机的信息也可以这样:

*** 作系统信息

SystemgetProperty("osversion");

SystemgetProperty("osarch");浏览器:requestgetHeader("User-Agent")再送个红包requestgetHeader(User-agent)返回客户端浏览器的版本号、类型

getHeader(String

name):获得>

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();

这样不行吗

InetAddress addr = InetAddressgetLocalHost();

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

以上就是关于java如何获取https协议的客户端ip地址全部的内容,包括:java如何获取https协议的客户端ip地址、jsp中怎么获得服务器ip和服务端口,在线等、jsp获取客户端局域网的ip等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存