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<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
|
boolean found = false;
|
String localIpAddress = null;
|
while (interfaces.hasMoreElements()) {
|
NetworkInterface ni = interfaces.nextElement();
|
if (ni.isUp() && !ni.isLoopback() && !ni.isVirtual()) {
|
Enumeration<InetAddress> 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<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
|
boolean found = false;
|
String localIpAddress = null;
|
while (interfaces.hasMoreElements()) {
|
NetworkInterface ni = interfaces.nextElement();
|
if (ni.isUp() && !ni.isLoopback() && !ni.isVirtual()) {
|
Enumeration<InetAddress> 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());
|
}
|
}
|
}
|