简体   繁体   English

如何从Java请求中获取IP?

[英]How to get ip from request in java?

I have uploaded my code on server. 我已将代码上传到服务器上。

I am using: 我在用:

 String ipAddress1 = FrameworkUtil.getServletRequest().getHeader("Remote_Addr");
 System.out.println("Remote_Addr ipAddress===>"+ipAddress1);

 String ipAddress = FrameworkUtil.getServletRequest().getHeader("HTTP_X_FORWARDED_FOR");
 System.out.println("HTTP_X_FORWARDED_FOR ipAddress==>"+ipAddress);

  if (ipAddress == null) {
        ipAddress = FrameworkUtil.getServletRequest().getRemoteAddr();
        System.out.println(" getRemoteAddr ipAddress=>"+ipAddress);
    }

I am getting: 我正进入(状态:

 Remote_Addr ipAddress===>null
 HTTP_X_FORWARDED_FOR ipAddress==>null
 getRemoteAddr ipAddress=>127.0.0.1

But in google myip give me: 233.233.22.331 但是在谷歌myip给我: 233.233.22.331

What should I do to get it in java ?? 我应该怎么做才能在Java中获得它?

Below should help you if you want to get IP from request : 如果您想从请求中获取IP,以下信息将为您提供帮助:

    String ip = null;

    if (request.getHeader("X-Forwarded-For") != null) {
        String xForwardedFor = request.getHeader("X-Forwarded-For");
        if (xForwardedFor.indexOf(",") != -1) {
            ip = xForwardedFor.substring(xForwardedFor.lastIndexOf(",") + 2);
        } else {
            ip = xForwardedFor;
        }
    } else {
        ip = request.getRemoteAddr();
    }

    System.out.println("Request from IP : "+ip);

Try this. 尝试这个。 It will return you your LAN IP(ServerIP) 它将返回您的LAN IP(ServerIP)

        InetAddress ip = InetAddress.getLocalHost();
        System.out.println("Current IP address : " + ip.getHostAddress());

For java web applications. 对于Java Web应用程序。 If you want your visitor's IP 如果您想要访客的IP

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
    ipAddress = request.getRemoteAddr();
}
System.out.println("ipAddress:" + ipAddress);

This code snippet will give you IP address. 该代码段将为您提供IP地址。

String ipaddress = req.getHeader("X-FORWARDED-FOR");
            if (ipaddress == null) {
                ipaddress = req.getRemoteAddr();
            }
    return ipaddress;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM