基于中科视拓的seetaface6封装的免费人脸识别项目后端接口
shentao
2025-09-22 4e24fd913e7b048436aa7e5001cf875baac81ff5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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());
        }
    }
}