`

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

阅读更多

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

 

================================

©Copyright 蕃薯耀 2019年1月11日

http://fanshuyao.iteye.com/

 

import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;

public class IpUtils {

	private static final String[] HEADERS = { 
        "X-Forwarded-For",
        "Proxy-Client-IP",
        "WL-Proxy-Client-IP",
        "HTTP_X_FORWARDED_FOR",
        "HTTP_X_FORWARDED",
        "HTTP_X_CLUSTER_CLIENT_IP",
        "HTTP_CLIENT_IP",
        "HTTP_FORWARDED_FOR",
        "HTTP_FORWARDED",
        "HTTP_VIA",
        "REMOTE_ADDR",
        "X-Real-IP"
	};
	
	/**
	 * 判断ip是否为空,空返回true
	 * @param ip
	 * @return
	 */
	public static boolean isEmptyIp(final String ip){
        return (ip == null || ip.length() == 0 || ip.trim().equals("") || "unknown".equalsIgnoreCase(ip));
    }
	
	
	/**
	 * 判断ip是否不为空,不为空返回true
	 * @param ip
	 * @return
	 */
	public static boolean isNotEmptyIp(final String ip){
        return !isEmptyIp(ip);
    }
	
	/***
     * 获取客户端ip地址(可以穿透代理)
     * @param request HttpServletRequest
     * @return
     */
    public static String getIpAddress(HttpServletRequest request) {
    	String ip = "";
    	for (String header : HEADERS) {
            ip = request.getHeader(header);
            if(isNotEmptyIp(ip)) {
            	 break;
            }
        }
        if(isEmptyIp(ip)){
        	ip = request.getRemoteAddr();
        }
        if(isNotEmptyIp(ip) && ip.contains(",")){
        	ip = ip.split(",")[0];
        }
        if("0:0:0:0:0:0:0:1".equals(ip)){
            ip = "127.0.0.1";
        }
        return ip;
    }
	
    
    /**
	 * 获取本机的局域网ip地址,兼容Linux
	 * @return String
	 * @throws Exception
	 */
	public String getLocalHostIP() throws Exception{
		Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
		String localHostAddress = "";
		while(allNetInterfaces.hasMoreElements()){
			NetworkInterface networkInterface = allNetInterfaces.nextElement();
			Enumeration<InetAddress> address = networkInterface.getInetAddresses();
			while(address.hasMoreElements()){
				InetAddress inetAddress = address.nextElement();
				if(inetAddress != null && inetAddress instanceof Inet4Address){
					localHostAddress = inetAddress.getHostAddress();
				}
			}
		}
		return localHostAddress;
	}
	
	
}

 

 

================================

©Copyright 蕃薯耀 2019年1月11日

http://fanshuyao.iteye.com/

1
0
分享到:
评论
1 楼 蕃薯耀 2019-01-11  
java IP地址工具类
java IP地址获取
java获取客户端IP地址
Java如何获取用户的IP地址

==========
蕃薯耀

相关推荐

    java中获取客户端IP MAC信息

    可以通过java获取客户端IPMAC主机名等信息。下载就能用,欢迎下载!

    IP工具类,通过传入的request获取ip地址(JAVA)

    在IT行业中,尤其是在Web开发领域,获取客户端的IP地址是一项常见的任务。这有助于跟踪用户行为、提供地域针对性的服务,甚至进行安全防护。本篇文章将详细解释如何在Java环境下,通过Servlet和Reactive编程模型来...

    获取Ip地址的Java工具类

    通过该工具类可以获得请求的IP地址,适用于后台管理系统的信息统计。

    获取客户端IP地址

    获取客户端提交申请时的ip地址,例如用于微信支付的获取客户端ip,根据配置不不同,有可能ipv4或ipv6,当服务器在自己电脑上,做测试是,可以使用127.0.0.1替代localhost

    java获取IP地址工具类

    利用淘宝IP地址库实现的利用IP获取用户所在地工具类

    IP地址HTTP请求工具类

    获取本地IP地址,获取本地Host名称,获取Linux下的IP地址,获取用户真实IP地址,get/post请求 相应的工具类

    获取IP地址工具类-java

    java获取IP地址的工具类,使用时传入HttpServletRequest request类型的参数即可。使用例子 public static void logPageError(HttpServletRequest request){IpUtils.getIpAddr(request))}

    IpUtil工具类--通过request获取IP,通过IP获取地址

    IpUtil工具类--通过request获取IP,通过IP获取地址(需要联网,调用淘宝的IP库)。使用场景:在网站开发记录用户增删改查日志的时候,往往需要记录操作人的IP地址,来准确的生成操作日志记录等

    获取客户端IP地址所需Jar包

    首先,我们需要了解在Java Web应用中获取客户端IP地址的基本方法。通常,在Servlet环境下,可以通过HttpServletRequest对象的getRemoteAddr()方法来获取。然而,在某些情况下,如通过反向代理服务器(如Nginx、...

    Java获取ip所在地区

    在Java编程中,我们有时需要获取一个IP地址所对应的具体地理位置,例如省份、城市等信息。这通常需要借助特定的IP数据库,如“纯真IP数据库”(QQWry.Dat),它包含了大量IP地址及其地理位置的映射关系。本文将详细...

    工具类-获取访问ip地址工具类,自用留存

    本案例中的"工具类-获取访问ip地址工具类,自用留存"是一个专门用于获取网络访问IP地址的Java工具类。这个工具类可能包含了一些方法,用于在不同的网络环境中准确地获取到客户端的IP地址,这对于网络应用的统计分析...

    java 获取 IP 地址

    1. **InetAddress 类**:Java中的`InetAddress`类是处理IP地址的核心工具。它可以用于获取主机名、IP地址,以及进行IP地址的转换。通过`getByName()`方法,我们可以传入一个主机名或域名,它会返回对应的`...

    ip地址管理器用java语言实现

    在Java中,`java.net`包提供了处理IP地址的类,如InetAddress,它可以用于解析和表示IP地址。在IP地址管理器中,我们可能会用到InetAddress的getByName()方法来解析IP字符串,或者getHostAddress()方法来获取对象所...

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

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

    Java获取客户端代码大全

    在Web开发过程中,经常需要获取客户端的各种信息,例如操作系统类型、浏览器版本、IP地址等。这些信息对于进行用户行为分析、日志记录、安全验证等非常有用。Java作为一种广泛应用于服务器端开发的语言,提供了多种...

    获取客户端IP、MAC

    在IT领域,尤其是在网络编程和系统管理中,获取客户端的IP地址和MAC地址是常见的需求。IP地址是网络层的标识符,而MAC地址则是数据链路层的物理地址。以下是一些关于如何在Java环境下获取客户端IP和MAC地址的知识点...

    在xinetd环境下如何获取客户端IP地址

    ### 在xinetd环境下如何获取客户端IP地址 在Linux系统中,`xinetd`(Internet Services Daemon)作为超级服务守护进程,负责监听各种网络请求并启动相应的服务处理这些请求。由于`xinetd`环境下的服务器程序通常...

    用java获取IP地址

    该类提供了一系列的方法来获取和操作IP地址,是Java中处理IP地址的基础工具之一。 #### 三、获取单个IP地址 最简单的情况是从一个给定的域名获取其对应的单个IP地址。这可以通过调用`InetAddress.getByName()`方法...

    JAVA IP地址查询地理位置

    通过IP地址查询所在省市,基于qqwry.dat(可通过百度下载最新qqwry.dat文件来更新)。 代码已经简化过,直接调用静态方法即可返回地区信息(传入IP为参数)。 使用时只需要把唯一工具类:IpLocationTool.java(无...

Global site tag (gtag.js) - Google Analytics