| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package com.loan.system.utils.logUtils;
- import javax.servlet.http.HttpServletRequest;
- import java.net.*;
- import java.util.Enumeration;
- /*
- * ip工具类
- *
- * @author chen
- * @date 2019/10/01
- * */
- public class IPUtils {
- public static String getLocalIP() throws SocketException {
- String localIP = null;
- Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces();
- InetAddress ip = null;
- while (allNetInterfaces.hasMoreElements()) {
- NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
- Enumeration addresses = netInterface.getInetAddresses();
- while (addresses.hasMoreElements()) {
- ip = (InetAddress) addresses.nextElement();
- if (ip != null && ip instanceof Inet4Address) {
- localIP = ip.getHostAddress();
- if (!"127.0.0.1".equalsIgnoreCase(localIP)) {
- return localIP;
- }
- }
- }
- }
- return localIP;
- }
- /**
- * 获取当前网络ip
- *
- * @param request
- * @return
- */
- public static String getIpAddr(HttpServletRequest request) {
- String 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") || ipAddress.equals("0:0:0:0:0: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;
- }
- }
|