package com.code2roc.fastface.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; @Configuration public class FaceApiConfig { @Bean public String localIpAddress() { try { Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); boolean found = false; String localIpAddress = null; while (interfaces.hasMoreElements()) { NetworkInterface ni = interfaces.nextElement(); if (ni.isUp() && !ni.isLoopback() && !ni.isVirtual()) { Enumeration addresses = ni.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress addr = addresses.nextElement(); if (addr instanceof Inet4Address) { System.out.println("本地IPv4地址: " + addr.getHostAddress()); found = true; localIpAddress = addr.getHostAddress(); } } } } if (!found) { throw new RuntimeException("未能找到合适的本地IP地址"); } return localIpAddress; } catch (SocketException e) { System.err.println("获取网络接口时出错: " + e.getMessage()); throw new RuntimeException("获取网络接口时出错: " + e.getMessage()); } } @Bean public String localAddress() { try { Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); boolean found = false; String localIpAddress = null; while (interfaces.hasMoreElements()) { NetworkInterface ni = interfaces.nextElement(); if (ni.isUp() && !ni.isLoopback() && !ni.isVirtual()) { Enumeration addresses = ni.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress addr = addresses.nextElement(); if (addr instanceof Inet4Address) { System.out.println("本地IPv4地址: " + addr.getHostAddress()); found = true; localIpAddress = addr.getHostAddress(); } } } } if (!found) { throw new RuntimeException("未能找到合适的本地IP地址"); } return "http://" + localIpAddress + ":" + "8081" + "/images/"; } catch (SocketException e) { System.err.println("获取网络接口时出错: " + e.getMessage()); throw new RuntimeException("获取网络接口时出错: " + e.getMessage()); } } }