问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

java中怎么获取客户端的真实的IP-CSDN论坛

提问网友 发布时间:2022-04-21 04:38
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
2个回答
热心网友 回答时间:2022-04-27 17:54
1.直接用jdk方法
InetAddress address = InetAddress.getLocalHost();
String IP=address.getHostAddress();
2.用request获取
public static String getRemoteIpAddr() {
HttpServletRequest request = getRequest();
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;
}

public static HttpSession getSession() {
return getRequest().getSession();
}
public static HttpServletRequest getRequest() {
return ServletActionContext.getRequest();
}
热心网友 回答时间:2022-04-27 19:12
private String getIpAddr() {
String ipAddress = null;
//ipAddress = this.getRequest().getRemoteAddr();
ipAddress = this.getRequest().getHeader("x-forwarded-for");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = this.getRequest().getHeader("Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = this.getRequest().getHeader("WL-Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = this.getRequest().getRemoteAddr();
if(ipAddress.equals("127.0.0.1")){
//根据网卡取本机配置的IP
InetAddress inet=null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress= inet.getHostAddress();
}

}

//对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15
if(ipAddress.indexOf(",")>0){
ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
}
}
return ipAddress;
}

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

相关推荐
在java后台服务器,如何根据HttpSession获得客户端ip? asp.net 中的 using 的用法 请问java获取请求对象的电脑ip和网络ip的方法是什么? 怎么获取发起请求的服务器IP java如何获取当前登录ip java如何不使用HttpServletRequest获取电脑客户端ip地址与Mac地址。 request.getHeader("x-forwarded-for")获取不到IP java如何获取用户真实的ip jsp页面如何获取本机IP地址 急求,请教下各位,为什么用request.getRemoteAddr()获取的Ip都不是真实的 jsp中我用request.getRemoteAddr()获取ip地址得到的是0:0:0:0:0: request.getremoteaddr()获取用户真实IP报空指针异常 request.getRemoteAddr怎么获取用户真实的IP地址 servlet怎么得到request的ip地址 如何通过Request获取用户真实IP 菠萝派怎么加热 手抓饼烤虾,空气炸锅美食食材有哪些? 蛋挞皮还可以做什么吃的 菠萝派在家怎么做? 肯德基的菠萝派真好吃,谁知道怎么做呢? 为什么用request.getRemoteAddr获得的全是127.0.0.1 java获取客户端ip地址的几种方法 支付宝没钱了自动扣费扣不了,还能坐公交吗 怎样可以看到设置权限的QQ空间 怎么进入权限空间 如何进入设置访问权限的QQ空间 手机怎么进入权限的qq空间 如何访问有权限的好友空间 在手机上怎么看有权限的空间 藤冈靛 0 sd敢达OL 霸烙啊靛 俊矾 (NPGAMEMON_COMM_CLOSE):0 程序开发专业很难学吗? 软件开发难学吗? 软件开发学起来难吗? x30怎么看电池损耗 软件开发难不难学? 软件开发学习难不难 计算机软件开发好学吗? 软件开发容易学吗? 编程难学吗?
Top