add method

This commit is contained in:
Looly 2022-06-26 23:47:13 +08:00
parent 3df784b1cf
commit 7bd0602219

View File

@ -429,6 +429,18 @@ public class NetUtil {
* @since 4.5.17
*/
public static LinkedHashSet<InetAddress> localAddressList(final Predicate<InetAddress> addressPredicate) {
return localAddressList(null, addressPredicate);
}
/**
* 获取所有满足过滤条件的本地IP地址对象
*
* @param networkInterfaceFilter 过滤器null表示不过滤获取所有网卡
* @param addressPredicate 过滤器{@link Predicate#test(Object)}{@code true}保留null表示不过滤获取所有地址
* @return 过滤后的地址对象列表
* @since 4.5.17
*/
public static LinkedHashSet<InetAddress> localAddressList(final Predicate<NetworkInterface> networkInterfaceFilter, final Predicate<InetAddress> addressPredicate) {
final Enumeration<NetworkInterface> networkInterfaces;
try {
networkInterfaces = NetworkInterface.getNetworkInterfaces();
@ -444,6 +456,9 @@ public class NetUtil {
while (networkInterfaces.hasMoreElements()) {
final NetworkInterface networkInterface = networkInterfaces.nextElement();
if (networkInterfaceFilter != null && false == networkInterfaceFilter.test(networkInterface)) {
continue;
}
final Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
final InetAddress inetAddress = inetAddresses.nextElement();