public class InetUtil extends Object
| 限定符和类型 | 类和说明 |
|---|---|
static interface |
InetUtil.NetworkProviderFilter |
| 限定符和类型 | 字段和说明 |
|---|---|
static int |
INTERFACE_NAME |
static int |
IP_ADDRESS |
| 构造器和说明 |
|---|
InetUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static List<String> |
filterByAddress(List<String> addressPatterns)
根据IP地址过滤IP地址
|
static List<String> |
filterByInterfaceNames(List<String> interfaceNames)
根据网卡过滤IP地址
|
static List<InetAddress> |
findNonLoopbackAddress()
查找本机的网络地址
|
static Map<NetworkInterface,List<InetAddress>> |
findNonLoopbackInterfacesWithAddress()
获取所有网卡和对应的网络地址
|
static void |
processNetworkEnvironment(org.springframework.core.env.ConfigurableEnvironment environment,
InetUtil.NetworkProviderFilter networkProviderFilter)
设置启动时spring cloud注册到注册中心的IP地址。
|
public static final int INTERFACE_NAME
public static final int IP_ADDRESS
public static List<InetAddress> findNonLoopbackAddress()
public static Map<NetworkInterface,List<InetAddress>> findNonLoopbackInterfacesWithAddress()
public static List<String> filterByInterfaceNames(List<String> interfaceNames)
public static List<String> filterByAddress(List<String> addressPatterns)
public static void processNetworkEnvironment(org.springframework.core.env.ConfigurableEnvironment environment,
InetUtil.NetworkProviderFilter networkProviderFilter)
@Order(Ordered.HIGHEST_PRECEDENCE)
public class SpringCloudInetResolver implements BeanPostProcessor, EnvironmentPostProcessor, Ordered {
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
InetUtil.processNetworkEnvironment(environment, new InetUtil.NetworkProviderFilter() {
@Override
public List<String> provide(String os) {
return Arrays.asList("wlan", "eth0");
// return Arrays.asList("192.168.1.");
}
@Override
public int filterBy(String os) {
return InetUtil.INTERFACE_NAME;
// return InetUtil.IP_ADDRESS;
}
});
}
@Override
public int getOrder() {
return ConfigFileApplicationListener.DEFAULT_ORDER - 2;
}
}
然后创建文件:resources/META-INF/spring.factories
文件内容为:
org.springframework.boot.env.EnvironmentPostProcessor=\ com.xxx.SpringCloudInetResolver
Copyright © 2022. All rights reserved.