mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
change code
This commit is contained in:
parent
6c120dd568
commit
f7db6c75d5
@ -22,6 +22,8 @@ import java.util.regex.Matcher;
|
|||||||
*/
|
*/
|
||||||
public class Ipv4Util {
|
public class Ipv4Util {
|
||||||
|
|
||||||
|
public static final String LOCAL_IP = "127.0.0.1";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IP段的分割符
|
* IP段的分割符
|
||||||
*/
|
*/
|
||||||
@ -305,6 +307,36 @@ public class Ipv4Util {
|
|||||||
return MaskBit.get(maskBit) != null;
|
return MaskBit.get(maskBit) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判定是否为内网IPv4<br>
|
||||||
|
* 私有IP:
|
||||||
|
* <pre>
|
||||||
|
* A类 10.0.0.0-10.255.255.255
|
||||||
|
* B类 172.16.0.0-172.31.255.255
|
||||||
|
* C类 192.168.0.0-192.168.255.255
|
||||||
|
* </pre>
|
||||||
|
* 当然,还有127这个网段是环回地址
|
||||||
|
*
|
||||||
|
* @param ipAddress IP地址
|
||||||
|
* @return 是否为内网IP
|
||||||
|
* @since 5.7.18
|
||||||
|
*/
|
||||||
|
public static boolean isInnerIP(String ipAddress) {
|
||||||
|
boolean isInnerIp;
|
||||||
|
long ipNum = ipv4ToLong(ipAddress);
|
||||||
|
|
||||||
|
long aBegin = ipv4ToLong("10.0.0.0");
|
||||||
|
long aEnd = ipv4ToLong("10.255.255.255");
|
||||||
|
|
||||||
|
long bBegin = ipv4ToLong("172.16.0.0");
|
||||||
|
long bEnd = ipv4ToLong("172.31.255.255");
|
||||||
|
|
||||||
|
long cBegin = ipv4ToLong("192.168.0.0");
|
||||||
|
long cEnd = ipv4ToLong("192.168.255.255");
|
||||||
|
|
||||||
|
isInnerIp = isInner(ipNum, aBegin, aEnd) || isInner(ipNum, bBegin, bEnd) || isInner(ipNum, cBegin, cEnd) || LOCAL_IP.equals(ipAddress);
|
||||||
|
return isInnerIp;
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------- Private method start
|
//-------------------------------------------------------------------------------- Private method start
|
||||||
|
|
||||||
@ -334,5 +366,17 @@ public class Ipv4Util {
|
|||||||
}
|
}
|
||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 指定IP的long是否在指定范围内
|
||||||
|
*
|
||||||
|
* @param userIp 用户IP
|
||||||
|
* @param begin 开始IP
|
||||||
|
* @param end 结束IP
|
||||||
|
* @return 是否在范围内
|
||||||
|
*/
|
||||||
|
private static boolean isInner(long userIp, long begin, long end) {
|
||||||
|
return (userIp >= begin) && (userIp <= end);
|
||||||
|
}
|
||||||
//-------------------------------------------------------------------------------- Private method end
|
//-------------------------------------------------------------------------------- Private method end
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ import java.util.TreeSet;
|
|||||||
*/
|
*/
|
||||||
public class NetUtil {
|
public class NetUtil {
|
||||||
|
|
||||||
public final static String LOCAL_IP = "127.0.0.1";
|
public final static String LOCAL_IP = Ipv4Util.LOCAL_IP;
|
||||||
|
|
||||||
public static String localhostName;
|
public static String localhostName;
|
||||||
|
|
||||||
@ -230,27 +230,21 @@ public class NetUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判定是否为内网IP<br>
|
* 判定是否为内网IPv4<br>
|
||||||
* 私有IP:A类 10.0.0.0-10.255.255.255 B类 172.16.0.0-172.31.255.255 C类 192.168.0.0-192.168.255.255 当然,还有127这个网段是环回地址
|
* 私有IP:
|
||||||
|
* <pre>
|
||||||
|
* A类 10.0.0.0-10.255.255.255
|
||||||
|
* B类 172.16.0.0-172.31.255.255
|
||||||
|
* C类 192.168.0.0-192.168.255.255
|
||||||
|
* </pre>
|
||||||
|
* 当然,还有127这个网段是环回地址
|
||||||
*
|
*
|
||||||
* @param ipAddress IP地址
|
* @param ipAddress IP地址
|
||||||
* @return 是否为内网IP
|
* @return 是否为内网IP
|
||||||
|
* @see Ipv4Util#isInnerIP(String)
|
||||||
*/
|
*/
|
||||||
public static boolean isInnerIP(String ipAddress) {
|
public static boolean isInnerIP(String ipAddress) {
|
||||||
boolean isInnerIp;
|
return Ipv4Util.isInnerIP(ipAddress);
|
||||||
long ipNum = NetUtil.ipv4ToLong(ipAddress);
|
|
||||||
|
|
||||||
long aBegin = NetUtil.ipv4ToLong("10.0.0.0");
|
|
||||||
long aEnd = NetUtil.ipv4ToLong("10.255.255.255");
|
|
||||||
|
|
||||||
long bBegin = NetUtil.ipv4ToLong("172.16.0.0");
|
|
||||||
long bEnd = NetUtil.ipv4ToLong("172.31.255.255");
|
|
||||||
|
|
||||||
long cBegin = NetUtil.ipv4ToLong("192.168.0.0");
|
|
||||||
long cEnd = NetUtil.ipv4ToLong("192.168.255.255");
|
|
||||||
|
|
||||||
isInnerIp = isInner(ipNum, aBegin, aEnd) || isInner(ipNum, bBegin, bEnd) || isInner(ipNum, cBegin, cEnd) || LOCAL_IP.equals(ipAddress);
|
|
||||||
return isInnerIp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -839,8 +833,8 @@ public class NetUtil {
|
|||||||
*
|
*
|
||||||
* @param hostName 主机域名
|
* @param hostName 主机域名
|
||||||
* @param attrNames 属性
|
* @param attrNames 属性
|
||||||
* @since 5.7.7
|
|
||||||
* @return DNS信息
|
* @return DNS信息
|
||||||
|
* @since 5.7.7
|
||||||
*/
|
*/
|
||||||
public static List<String> getDnsInfo(String hostName, String... attrNames) {
|
public static List<String> getDnsInfo(String hostName, String... attrNames) {
|
||||||
final String uri = StrUtil.addPrefixIfNot(hostName, "dns:");
|
final String uri = StrUtil.addPrefixIfNot(hostName, "dns:");
|
||||||
@ -859,16 +853,5 @@ public class NetUtil {
|
|||||||
|
|
||||||
// ----------------------------------------------------------------------------------------- Private method start
|
// ----------------------------------------------------------------------------------------- Private method start
|
||||||
|
|
||||||
/**
|
|
||||||
* 指定IP的long是否在指定范围内
|
|
||||||
*
|
|
||||||
* @param userIp 用户IP
|
|
||||||
* @param begin 开始IP
|
|
||||||
* @param end 结束IP
|
|
||||||
* @return 是否在范围内
|
|
||||||
*/
|
|
||||||
private static boolean isInner(long userIp, long begin, long end) {
|
|
||||||
return (userIp >= begin) && (userIp <= end);
|
|
||||||
}
|
|
||||||
// ----------------------------------------------------------------------------------------- Private method end
|
// ----------------------------------------------------------------------------------------- Private method end
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user