null
* @since 3.0.1
*/
@@ -344,7 +356,7 @@ public class NetUtil {
/**
* 获得本机的IPv4地址列表null
* 参考:http://stackoverflow.com/questions/9481865/getting-the-ip-address-of-the-current-machine-using-java
- *
+ *
* @return 本机网卡IP地址,获取失败返回null
* @since 3.0.7
*/
@@ -448,16 +460,16 @@ public class NetUtil {
/**
* 获取本机网卡IP地址,规则如下:
- *
+ *
*
* 1. 查找所有网卡地址,必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址 * 2. 如果无满足要求的地址,调用 {@link InetAddress#getLocalHost()} 获取地址 *- * + *
* 此方法不会抛出异常,获取失败将返回null
- *
+ *
* 见:https://github.com/looly/hutool/issues/428
- *
+ *
* @return 本机网卡IP地址,获取失败返回null
* @since 3.0.1
*/
@@ -467,7 +479,7 @@ public class NetUtil {
return false == address.isLoopbackAddress()
// 非地区本地地址,指10.0.0.0 ~ 10.255.255.255、172.16.0.0 ~ 172.31.255.255、192.168.0.0 ~ 192.168.255.255
&& false == address.isSiteLocalAddress()
- // 需为IPV4地址
+ // 需为IPV4地址
&& address instanceof Inet4Address;
});
@@ -486,7 +498,7 @@ public class NetUtil {
/**
* 获得本机MAC地址
- *
+ *
* @return 本机MAC地址
*/
public static String getLocalMacAddress() {
@@ -495,7 +507,7 @@ public class NetUtil {
/**
* 获得指定地址信息中的MAC地址,使用分隔符“-”
- *
+ *
* @param inetAddress {@link InetAddress}
* @return MAC地址,用-分隔
*/
@@ -505,9 +517,9 @@ public class NetUtil {
/**
* 获得指定地址信息中的MAC地址
- *
+ *
* @param inetAddress {@link InetAddress}
- * @param separator 分隔符,推荐使用“-”或者“:”
+ * @param separator 分隔符,推荐使用“-”或者“:”
* @return MAC地址,用-分隔
*/
public static String getMacAddress(InetAddress inetAddress, String separator) {
@@ -539,7 +551,7 @@ public class NetUtil {
/**
* 创建 {@link InetSocketAddress}
- *
+ *
* @param host 域名或IP地址,空表示任意地址
* @param port 端口,0表示系统分配临时端口
* @return {@link InetSocketAddress}
@@ -553,13 +565,12 @@ public class NetUtil {
}
/**
- *
* 简易的使用Socket发送数据
- *
- * @param host Server主机
- * @param port Server端口
+ *
+ * @param host Server主机
+ * @param port Server端口
* @param isBlock 是否阻塞方式
- * @param data 需要发送的数据
+ * @param data 需要发送的数据
* @throws IORuntimeException IO异常
* @since 3.3.0
*/
@@ -573,9 +584,8 @@ public class NetUtil {
}
/**
- *
* 使用普通Socket发送数据
- *
+ *
* @param host Server主机
* @param port Server端口
* @param data 数据
@@ -598,8 +608,8 @@ public class NetUtil {
/**
* 是否在CIDR规则配置范围内
* 方法来自:【成都】小邓
- *
- * @param ip 需要验证的IP
+ *
+ * @param ip 需要验证的IP
* @param cidr CIDR规则
* @return 是否在范围内
* @since 4.0.6
@@ -617,7 +627,7 @@ public class NetUtil {
/**
* Unicode域名转puny code
- *
+ *
* @param unicode Unicode域名
* @return puny code
* @since 4.1.22
@@ -628,7 +638,7 @@ public class NetUtil {
/**
* 从多级反向代理中获得第一个非unknown IP地址
- *
+ *
* @param ip 获得的IP地址
* @return 第一个非unknown IP地址
* @since 4.4.1
@@ -649,7 +659,7 @@ public class NetUtil {
/**
* 检测给定字符串是否为未知,多用于检测HTTP请求相关
- *
+ *
* @param checkString 被检测的字符串
* @return 是否未知
* @since 4.4.1
@@ -658,38 +668,39 @@ public class NetUtil {
return StrUtil.isBlank(checkString) || "unknown".equalsIgnoreCase(checkString);
}
- /**
- * 检测IP地址是否能ping通
- *
- * @param ip IP地址
- * @return 返回是否ping通
- */
- public static boolean ping(String ip) {
- return ping(ip, 200);
- }
+ /**
+ * 检测IP地址是否能ping通
+ *
+ * @param ip IP地址
+ * @return 返回是否ping通
+ */
+ public static boolean ping(String ip) {
+ return ping(ip, 200);
+ }
+
+ /**
+ * 检测IP地址是否能ping通
+ *
+ * @param ip IP地址
+ * @param timeout 检测超时(毫秒)
+ * @return 是否ping通
+ */
+ public static boolean ping(String ip, int timeout) {
+ try {
+ return InetAddress.getByName(ip).isReachable(timeout); // 当返回值是true时,说明host是可用的,false则不可。
+ } catch (Exception ex) {
+ return false;
+ }
+ }
- /**
- * 检测IP地址是否能ping通
- *
- * @param ip IP地址
- * @param timeout 检测超时(毫秒)
- * @return 是否ping通
- */
- public static boolean ping(String ip, int timeout) {
- try {
- return InetAddress.getByName(ip).isReachable(timeout); // 当返回值是true时,说明host是可用的,false则不可。
- } catch (Exception ex) {
- return false;
- }
- }
-
// ----------------------------------------------------------------------------------------- Private method start
+
/**
* 指定IP的long是否在指定范围内
- *
+ *
* @param userIp 用户IP
- * @param begin 开始IP
- * @param end 结束IP
+ * @param begin 开始IP
+ * @param end 结束IP
* @return 是否在范围内
*/
private static boolean isInner(long userIp, long begin, long end) {
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
index d29cd14d4..58cbed0df 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
@@ -379,35 +379,17 @@ public class RandomUtil {
*
* @param length 长度
* @return 随机索引
+ * @since 5.2.1
*/
- public static int[] createRandomList(int length){
- int[] list = ArrayUtil.range(length);
+ public static int[] randomInts(int length){
+ final int[] range = ArrayUtil.range(length);
for (int i = 0; i < length; i++) {
int random = randomInt(i,length);
- ArrayUtil.swap(list,i,random);
+ ArrayUtil.swap(range,i,random);
}
- return list;
+ return range;
}
- /**
- * 随机获得列表中的一定量的元素,返回List
- *
- * @param source 列表
- * @param count 随机取出的个数
- * @param