`
weitao1026
  • 浏览: 1047690 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java获得IP

阅读更多
public String getIp(HttpServletRequest request) { 
2.        String ip= request.getHeader("X-Forwarded-For"); 
3.        if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) 
4.            ip= request.getHeader("Proxy-Client-IP"); 
5.        if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) 
6.            ip= request.getHeader("WL-Proxy-Client-IP"); 
7.        if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) 
8.            ip= request.getHeader("HTTP_CLIENT_IP"); 
9.        if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) 
10.            ip= request.getHeader("HTTP_X_FORWARDED_FOR"); 
11.        if (ip== null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) 
12.            ip= request.getRemoteAddr(); 
13.        if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)){ 
14.            try { 
15.                ip= InetAddress.getLocalHost().getHostAddress(); 
16.            } 
17.            catch (UnknownHostException e) { 
18.                e.printStackTrace(); 
19.            } 
20.        } 
21.    return ip 
22.} 








Java代码 复制代码 收藏代码
1./**
2.     * 获取访问者IP
3.     * 
4.     * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。
5.     * 
6.     * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),
7.     * 如果还不存在则调用Request .getRemoteAddr()。
8.     * 
9.     * @param request
10.     * @return
11.     */ 
12.    public static String getIpAddr(HttpServletRequest request) { 
13.        String ip = request.getHeader("X-Real-IP"); 
14.        if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) { 
15.            return ip; 
16.        } 
17.        ip = request.getHeader("X-Forwarded-For"); 
18.        if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) { 
19.            // 多次反向代理后会有多个IP值,第一个为真实IP。 
20.            int index = ip.indexOf(','); 
21.            if (index != -1) { 
22.                return ip.substring(0, index); 
23.            } else { 
24.                return ip; 
25.            } 
26.        } else { 
27.            return request.getRemoteAddr(); 
28.        } 
29.    } 
分享到:
评论

相关推荐

    Java获取ip所在地区

    本文将详细讲解如何在Java环境中,通过读取纯真IP数据库来获取IP地址所在地区。 首先,要理解IP地址和地理位置之间的关联。IP地址是一个由四部分组成的数字标识,用于在网络中唯一标识一台设备。而地理位置信息则是...

    java获取ip地址

    ### Java获取IP地址知识点解析 在本篇文章中,我们将深入探讨如何使用Java语言来获取IP地址。这是一项在网络编程中非常基础且重要的技能,能够帮助开发者了解客户端或服务器的网络位置信息。以下是对给定文件中的...

    java根据IP获取城市代码

    总之,通过Java获取IP地址对应的城市代码涉及了数据库查询、网络请求等多个技术点。在实际开发中,我们需要根据项目需求、性能要求和成本考虑选择合适的实现方式。对于大型项目,可能会结合使用本地数据库和服务提供...

    java获取ip地址返回地区

    在Java编程中,获取IP地址并返回对应的国家、地区以及城市信息是一项常见的需求,尤其是在进行网络定位或数据分析时。为了实现这一功能,开发者通常会利用IP数据库,如QQwry IP库,它包含了全球IP地址与地理位置的...

    java 获取ip 工具类 java 获取ip 工具类

    java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类 java 获取ip 工具类

    java 获取IP方法工具类 java 获取IP方法工具类

    java 获取IP方法工具类 java 获取IP方法工具类java 获取IP方法工具类 java 获取IP方法工具类java 获取IP方法工具类 java 获取IP方法工具类java 获取IP方法工具类 java 获取IP方法工具类java 获取IP方法工具类 java ...

    java根据ip获取国家、地区名称,附带ip库

    java根据ip获取国家、地区名称,附带ip库 java根据ip获取国家、地区名称,附带ip库

    用java获取IP地址

    ### 使用Java获取IP地址 #### 一、引言 在现代网络编程中,获取客户端或服务器的IP地址是一项常见的需求。Java提供了强大的网络编程支持,其中包括了获取IP地址的功能。本文将详细介绍如何利用Java标准库中的`java...

    java获得IP的方法大全

    java获得IP的方法大全

    Java获取客户端真实IP地址

    ### Java获取客户端真实IP地址详解 在Web开发中,获取客户端的真实IP地址是一个常见的需求,尤其是在需要进行地理位置定位、安全审计、流量统计等场景下。然而,在存在反向代理服务器的环境中,传统的`request....

    java IP地址工具类,java IP地址获取,java获取客户端IP地址

    在Java编程中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至...

    java获取ipjava获取ipjava获取ipjava获取ipjava获取ip

    在Java编程中,获取IP地址是一项常见的任务,无论是为了网络通信、日志记录还是其他网络相关的功能。在Java中获取IP地址主要涉及到网络编程的知识,包括InetAddress类、Socket编程等概念。以下将详细讲解如何在Java...

    java 获取 IP 地址

    在Java编程语言中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个程序虽然界面简单,但核心功能强大,它能够帮助开发者获取指定域名对应的IP地址。以下是关于这个话题的一些详细知识点: 1. *...

    java获取ip地址示例

    需要注意的是,`X-Forwarded-For`头部可能存在被篡改的风险,因此在某些安全敏感的应用场景中,直接依赖这个头部获取IP可能不够安全。此外,不同的反向代理服务器可能有特定的配置,如Squid的`forwarded_for`选项,...

    java获取IP地址

    java获取IP地址。别人总结的文章,自己备份一下,需要的同学可以参考

    java IP 库 ip

    标题"java IP 库 ip"指的是使用Java来处理IP相关的功能,而描述中的"java获取ip,离线文件数据库,代码已写好"暗示我们有一个离线数据库用于IP查询,这通常涉及到IP到地理位置的映射。标签"java IP 库 ip ipaddress...

    idea,java获取ip地址

    2. **获取IP地址**:`HttpServletRequest`对象有一个`getRemoteAddr()`方法,它返回客户端的IP地址。然而,如果应用运行在反向代理服务器(如Nginx)后,这个方法可能会返回代理服务器的IP。因此,我们需要检查`X-...

    java根据ip获取国家、地区名称,附带ip地址库

    `InetAddress`提供了`getByName()`方法,可以将字符串形式的IP地址转换为`InetAddress`对象,然后通过`getHostAddress()`方法获取IP地址,`getHostName()`方法则能获取主机名,但这些方法无法直接得到国家或地区的...

    java获取公网IP

    本文将详细讨论如何使用Java编程语言来获取公网IP地址。 首先,我们需要理解获取公网IP的基本原理。通常,当我们的设备连接到互联网时,ISP(Internet Service Provider,互联网服务提供商)会分配一个公网IP。这个...

Global site tag (gtag.js) - Google Analytics