首页 > 其他分享 >工具集-CommonUtil

工具集-CommonUtil

时间:2023-01-12 13:12:26浏览次数:34  
标签:String IP request 工具集 CommonUtil length null ipAddress

/**
 * 获取ip
 * @param request
 * @return
 */
public static String getIpAddr(HttpServletRequest request) {
	String ipAddress = null;
	try {
		ipAddress = request.getHeader("x-forwarded-for");
		if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader("Proxy-Client-IP");
		}
		if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
			ipAddress = request.getHeader("WL-Proxy-Client-IP");
		}
		if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
			ipAddress = request.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(","));
			}
		}
	} catch (Exception e) {
		ipAddress="";
	}
	return ipAddress;
}



public static String MD5(String data)  {
	try {
		java.security.MessageDigest md = MessageDigest.getInstance("MD5");
		byte[] array = md.digest(data.getBytes("UTF-8"));
		StringBuilder sb = new StringBuilder();
		for (byte item : array) {
			sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
		}

		return sb.toString().toUpperCase();
	} catch (Exception exception) {
	}
	return null;

}

标签:String,IP,request,工具集,CommonUtil,length,null,ipAddress
From: https://www.cnblogs.com/xiaoyangabc/p/17046336.html

相关文章

  • sysAK(青囊)系统运维工具集:如何实现高效自动化运维?
    系统运维SIG已在龙蜥社区建立SIG组。目前sysAK工具集已经在龙蜥社区开源,并且在系统运维SIG、跟踪诊断SIG一起共建,希望大家后期加入SIG一起讨论共建。本文将从技......
  • 超棒的良心工具-OCR工具集
    使用平台:Windows虽然是OCR工具,但多了一个“集”字,原因在于该软件内置了搜狗网络OCR、本地离线OCR,不用key,还原天若OCR操作。一句话:免去申请注册key登录+软件操作和天若oc......
  • uTools 效率工具集 使用教程
    前言uTools是一款基于electron开发的工具集软件,通过快捷唤醒搜索,直接打开各种功能,非常方便。uToolsuTools是一个极简、插件化、跨平台的现代化桌面软件。通过自由选配丰富......
  • uTools V3.3.0 效率工具集
    前言uTools是一款基于electron开发的工具集软件,通过快捷唤醒搜索,直接打开各种功能,非常方便。uToolsuTools是一个极简、插件化、跨平台的现代化桌面软件。通过自由选配丰......
  • 【一库】vueuse:我不许身为vuer,你的工具集只有lodash!
      vueuse是什么?一款基于Vue组合式API的函数工具集。以上是官方网站关于它的定义。官网地址首先,它基于VueCompositionApi(组合式API),只有在支持组合式API......
  • 【NLP】NLTK工具集使用
    学习总结文章目录​​学习总结​​​​一、NaturalLanguageToolkit​​​​二、常用语料库和词典​​​​三、常用NLP工具集​​​​3.1分句​​​​3.2标记解析​​​......
  • Unity 常用功能代码工具集
    Unity常用功能整理安卓摄像头的调用请求与拍摄、截图//////————————SakuraNeko————————//////博客园:https://www.cnblogs.com/sakuraneko//......
  • 必知必会开发工具集合
    目录前言一、浏览器工具1、在线工具2、插件扩展二、优化电脑使用工具1.notpad++2.plotplayer3.OfficeToolPlus——强大且实用的Office部署工具4.Mydockfinder——提供......
  • 乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 适用于Entity Framework Core
    什么是EFCoreCLI适用于EntityFrameworkCore的命令行接口(CLI)工具可执行设计时开发任务。例如,可以创建迁移、应用迁移,并为基于现有数据库的模型生成代码。获取EFCore......
  • go柳叶刀工具集合
    lancet是一个全面、高效、可复用的go语言工具函数库。本次发布v2.0.0版本,全面升级go1.18,应用泛型重写大部分函数。同时新增70+函数。特性全面、高效、可复用250+常用go......