| | |
| | | * 获取IP地址: |
| | | */ |
| | | public static String getIpAddress(HttpServletRequest request) { |
| | | try { |
| | | Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); |
| | | while (interfaces.hasMoreElements()) { |
| | | NetworkInterface networkInterface = interfaces.nextElement(); |
| | | Enumeration<InetAddress> addresses = networkInterface.getInetAddresses(); |
| | | while (addresses.hasMoreElements()) { |
| | | InetAddress address = addresses.nextElement(); |
| | | if (!address.isSiteLocalAddress() && !address.isLoopbackAddress() && address instanceof Inet4Address) { |
| | | System.out.println("External IP: " + address.getHostAddress()); |
| | | return address.getHostAddress(); |
| | | } |
| | | } |
| | | } |
| | | } catch (SocketException e) { |
| | | e.printStackTrace(); |
| | | // 获取客户端真实 IP 地址 |
| | | String ipAddress = request.getHeader("X-Forwarded-For"); |
| | | |
| | | if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { |
| | | ipAddress = request.getHeader("Proxy-Client-IP"); |
| | | } |
| | | return null; |
| | | |
| | | if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { |
| | | ipAddress = request.getHeader("WL-Proxy-Client-IP"); |
| | | } |
| | | |
| | | if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { |
| | | ipAddress = request.getRemoteAddr(); |
| | | } |
| | | |
| | | return ipAddress; |
| | | } |
| | | |
| | | /** |