mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add method
This commit is contained in:
parent
3df784b1cf
commit
7bd0602219
@ -429,6 +429,18 @@ public class NetUtil {
|
|||||||
* @since 4.5.17
|
* @since 4.5.17
|
||||||
*/
|
*/
|
||||||
public static LinkedHashSet<InetAddress> localAddressList(final Predicate<InetAddress> addressPredicate) {
|
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;
|
final Enumeration<NetworkInterface> networkInterfaces;
|
||||||
try {
|
try {
|
||||||
networkInterfaces = NetworkInterface.getNetworkInterfaces();
|
networkInterfaces = NetworkInterface.getNetworkInterfaces();
|
||||||
@ -444,6 +456,9 @@ public class NetUtil {
|
|||||||
|
|
||||||
while (networkInterfaces.hasMoreElements()) {
|
while (networkInterfaces.hasMoreElements()) {
|
||||||
final NetworkInterface networkInterface = networkInterfaces.nextElement();
|
final NetworkInterface networkInterface = networkInterfaces.nextElement();
|
||||||
|
if (networkInterfaceFilter != null && false == networkInterfaceFilter.test(networkInterface)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
final Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
|
final Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
|
||||||
while (inetAddresses.hasMoreElements()) {
|
while (inetAddresses.hasMoreElements()) {
|
||||||
final InetAddress inetAddress = inetAddresses.nextElement();
|
final InetAddress inetAddress = inetAddresses.nextElement();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user