Package org.miaixz.bus.core.net.ip
Class IPv4
java.lang.Object
org.miaixz.bus.core.net.ip.IPv4
IPV4地址工具类 名词解释:
- ip字符串:点分十进制,形如:xxx.xxx.xxx.xxx
- ip的Long类型:有效位32位,每8位可以转为一个十进制数,例如:0xC0A802FA, 转为点分十进制是:192.168.2.250
- 掩码地址:点分十进制,例如:255.255.255.0
- 掩码位:int类型,例如 24, 它代表的掩码地址为:255.255.255.0;掩码位和掩码地址的相互转换,请使用
MaskBit - CIDR:无类域间路由,形如:xxx.xxx.xxx.xxx/掩码位,192.168.1.101/24
- 全量地址:区间内所有ip地址,包含区间两端
- 可用地址:区间内所有ip地址,但是不包含区间两端
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longIpv4 A类地址最大值数值形式static final longIpv4 A类地址最小值数值形式static final longIpv4 A类地址私网网段最大值数值形式static final longIpv4 A类地址私网网段最小值数值形式static final StringIpv4 A类地址私网网段最大值字符串形式static final StringIpv4 A类地址私网网段最小值字符串形式static final longIpv4 A类地址第一个公网网段最大值数值形式static final longIpv4 A类地址第一个公网网段最小值数值形式static final StringIpv4 A类地址第一个公网网段最大值字符串形式static final StringIpv4 A类地址第一个公网网段最小值字符串形式static final longIpv4 A类地址第二个公网网段最大值数值形式static final longIpv4 A类地址第二个公网网段最小值数值形式static final StringIpv4 A类地址第二个公网网段最大值字符串形式static final StringIpv4 A类地址第二个公网网段最小值字符串形式static final StringIpv4 A类地址最大值字符串形式static final StringIpv4 A类地址最小值字符串形式static final longIpv4 B类地址最大值数值形式static final longIpv4 B类地址最小值数值形式static final longIpv4 B类地址私网网段最大值数值形式static final longIpv4 B类地址私网网段最小值数值形式static final StringIpv4 B类地址私网网段最大值字符串形式static final StringIpv4 B类地址私网网段最小值字符串形式static final longIpv4 B类地址第一个公网网段最大值数值形式static final longIpv4 B类地址第一个公网网段最小值数值形式static final StringIpv4 B类地址第一个公网网段最大值字符串形式static final StringIpv4 B类地址第一个公网网段最小值字符串形式static final longIpv4 B类地址第二个公网网段最大值数值形式static final longIpv4 B类地址第二个公网网段最小值数值形式static final StringIpv4 B类地址第二个公网网段最大值字符串形式static final StringIpv4 B类地址第二个公网网段最小值字符串形式static final StringIpv4 B类地址最大值字符串形式static final StringIpv4 B类地址最小值字符串形式static final longIpv4 C类地址最小值数值形式static final longIpv4 C类地址私网网段最大值数值形式static final longIpv4 C类地址私网网段最小值数值形式static final StringIpv4 C类地址私网网段最大值字符串形式static final StringIpv4 C类地址私网网段最小值字符串形式static final longIpv4 C类地址第一个公网网段最大值数值形式static final longIpv4 C类地址第一个公网网段最小值数值形式static final StringIpv4 C类地址第一个公网网段最大值字符串形式static final StringIpv4 C类地址第一个公网网段最小值字符串形式static final longIpv4 C类地址第二个公网网段最大值数值形式static final longIpv4 C类地址第二个公网网段最小值数值形式static final StringIpv4 C类地址第二个公网网段最大值字符串形式static final StringIpv4 C类地址第二个公网网段最小值字符串形式static final StringIpv4 C类地址最大值字符串形式static final StringIpv4 C类地址最小值字符串形式static final longIpv4 D类地址专用网段(用于广播)最大值数值形式static final longIpv4 D类地址专用网段(用于广播)最小值数值形式static final StringIpv4 D类地址专用网段(用于广播)最大值字符串形式static final StringIpv4 D类地址专用网段(用于广播)最小值字符串形式static final longIpv4 D类地址最大值数值形式static final longIpv4 D类地址最小值数值形式static final longIpv4 D类地址私用网段(用于测试)最大值数值形式static final longIpv4 D类地址私用网段(用于测试)最小值数值形式static final StringIpv4 D类地址私用网段(用于测试)最大值字符串形式static final StringIpv4 D类地址私用网段(用于测试)最小值字符串形式static final longIpv4 D类地址公用网段(用于组播)最大值数值形式static final longIpv4 D类地址公用网段(用于组播)最小值数值形式static final StringIpv4 D类地址公用网段(用于组播)最大值字符串形式static final StringIpv4 D类地址公用网段(用于组播)最小值字符串形式static final StringIpv4 D类地址最大值字符串形式static final StringIpv4 D类地址最小值字符串形式static final longIpv4 E类地址最大值数值形式static final longIpv4 E类地址最小值数值形式static final StringIpv4 E类地址最大值字符串形式static final StringIpv4 E类地址最小值字符串形式static final longIpv4 本地回环地址最大值数值形式static final longIpv4 本地回环地址最小值数值形式static final StringIpv4 本地回环地址最大值字符串形式static final StringIpv4 本地回环地址最小值字符串形式static final intIpv4最大掩码位static final intIpv4最小掩码位static final intIpv4有意义的最小掩码位static final StringIpv4最大掩码字符串static final StringIpv4有意义的最小掩码字符串static final longIpv4最小值数值形式static final longIpv4未使用地址最大值数值形式static final longIpv4未使用地址最小值数值形式static final longlocalhost默认解析的ip地址的数值形式 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic InetSocketAddressbuildInetSocketAddress(String host, int defaultPort) 构建InetSocketAddress 当host中包含端口时(用“:”隔开),使用host中的端口,否则使用默认端口 给定host为空时使用本地host(127.0.0.1)static intcountByIpRange(long fromIp, long toIp) 获得 指定区间内的 ip数量static intcountByIpRange(String fromIp, String toIp) 获得 指定区间内的 ip数量static intcountByMaskBit(int maskBit, boolean isAll) 获取 子网内的 地址总数static StringformatIpBlock(String ip, String mask) 根据 ip地址 和 掩码地址 获得 CIDR格式字符串static longgetBeginIpLong(String ip, int maskBit) 根据 ip 和 掩码位 获取 子网的起始IP(Long型)static StringgetBeginIpString(String ip, int maskBit) 根据 ip 和 掩码位 获取 子网的起始IP(字符串型)static longgetEndIpLong(String ip, int maskBit) 根据 ip 和 掩码位 获取 子网的终止IP(Long型)static StringgetEndIpString(String ip, int maskBit) 根据 ip 和 掩码位 获取 子网的终止IP(字符串型)static byte[]获得本机物理地址static InetAddress获取本机网卡IPv4地址,规则如下: 必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址 多网卡则返回第一个满足条件的地址 如果无满足要求的地址,调用InetAddress.getLocalHost()获取地址static InetAddress获取本机网卡IPv4地址,不使用缓存,规则如下: 必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址 多网卡则返回第一个满足条件的地址 如果无满足要求的地址,调用InetAddress.getLocalHost()获取地址static InetAddressgetLocalhostDirectly(boolean includeSiteLocal) 获取本机网卡IPv4地址,不使用缓存,规则如下: 必须非回路(loopback)地址、IPv4地址 多网卡则返回第一个满足条件的地址 如果无满足要求的地址,调用InetAddress.getLocalHost()获取地址static String获取主机名称,一次获取会缓存名称 注意此方法会触发反向DNS解析,导致阻塞,阻塞时间取决于网络!static String获得本机MAC地址,默认使用获取到的IPv4本地地址对应网卡static intgetMaskBitByMask(String mask) 将 子网掩码 转换为 掩码位static StringgetMaskByIpRange(String fromIp, String toIp) 根据 开始IP 与 结束IP 获取 掩码地址static StringgetMaskByMaskBit(int maskBit) 根据 掩码位 获取 掩码地址static intgetPartOfIp(long ip, int position) 获取ip(Long类型)指定部分的十进制值,即,X.X.X.X 形式中每个部分的值static longipv4ToLong(String strIp) 将 ip字符串 转换为 long值static booleanisInnerIP(long ipNum) 是否为内网地址static boolean判定是否为内网IPv4 私有IP:static booleanisMaskBitValid(int maskBit) 判断掩码位是否合法static booleanisMaskValid(String mask) 判断掩码是否合法static booleanisPublicIP(long ipNum) 是否为公网地址static booleanisPublicIP(String ipAddress) 是否为公网地址 公网IP:list(long ipFrom, long ipTo) 得到指定区间内的所有IP地址智能获取指定区间内的所有IP地址根据 IP地址 和 掩码位数 获取 子网所有ip地址获得 指定区间内 所有ip地址static StringlongToIpv4(long ip) 根据 ip的long值 获取 ip字符串,即:xxx.xxx.xxx.xxxstatic boolean检测指定 IP 地址是否匹配通配符 wildcard
-
Field Details
-
LOCAL_IP_NUM
public static final long LOCAL_IP_NUMlocalhost默认解析的ip地址的数值形式 -
IPV4_NUM_MIN
public static final long IPV4_NUM_MINIpv4最小值数值形式 -
IPV4_UNUSED_NUM_MIN
public static final long IPV4_UNUSED_NUM_MINIpv4未使用地址最小值数值形式 -
IPV4_UNUSED_NUM_MAX
public static final long IPV4_UNUSED_NUM_MAXIpv4未使用地址最大值数值形式 -
IPV4_MASK_BIT_MIN
public static final int IPV4_MASK_BIT_MINIpv4最小掩码位- See Also:
-
IPV4_MASK_BIT_VALID_MIN
public static final int IPV4_MASK_BIT_VALID_MINIpv4有意义的最小掩码位- See Also:
-
IPV4_MASK_VALID_MIN
Ipv4有意义的最小掩码字符串 -
IPV4_MASK_BIT_MAX
public static final int IPV4_MASK_BIT_MAXIpv4最大掩码位- See Also:
-
IPV4_MASK_MAX
Ipv4最大掩码字符串 -
IPV4_LOOPBACK_STR_MIN
Ipv4 本地回环地址最小值字符串形式- See Also:
-
IPV4_LOOPBACK_NUM_MIN
public static final long IPV4_LOOPBACK_NUM_MINIpv4 本地回环地址最小值数值形式 -
IPV4_LOOPBACK_STR_MAX
Ipv4 本地回环地址最大值字符串形式- See Also:
-
IPV4_LOOPBACK_NUM_MAX
public static final long IPV4_LOOPBACK_NUM_MAXIpv4 本地回环地址最大值数值形式 -
IPV4_A_STR_MIN
Ipv4 A类地址最小值字符串形式- See Also:
-
IPV4_A_NUM_MIN
public static final long IPV4_A_NUM_MINIpv4 A类地址最小值数值形式 -
IPV4_A_STR_MAX
Ipv4 A类地址最大值字符串形式- See Also:
-
IPV4_A_NUM_MAX
public static final long IPV4_A_NUM_MAXIpv4 A类地址最大值数值形式 -
IPV4_A_PUBLIC_1_STR_MIN
Ipv4 A类地址第一个公网网段最小值字符串形式- See Also:
-
IPV4_A_PUBLIC_1_NUM_MIN
public static final long IPV4_A_PUBLIC_1_NUM_MINIpv4 A类地址第一个公网网段最小值数值形式 -
IPV4_A_PUBLIC_1_STR_MAX
Ipv4 A类地址第一个公网网段最大值字符串形式- See Also:
-
IPV4_A_PUBLIC_1_NUM_MAX
public static final long IPV4_A_PUBLIC_1_NUM_MAXIpv4 A类地址第一个公网网段最大值数值形式 -
IPV4_A_PRIVATE_STR_MIN
Ipv4 A类地址私网网段最小值字符串形式- See Also:
-
IPV4_A_PRIVATE_NUM_MIN
public static final long IPV4_A_PRIVATE_NUM_MINIpv4 A类地址私网网段最小值数值形式 -
IPV4_A_PRIVATE_STR_MAX
Ipv4 A类地址私网网段最大值字符串形式- See Also:
-
IPV4_A_PRIVATE_NUM_MAX
public static final long IPV4_A_PRIVATE_NUM_MAXIpv4 A类地址私网网段最大值数值形式 -
IPV4_A_PUBLIC_2_STR_MIN
Ipv4 A类地址第二个公网网段最小值字符串形式- See Also:
-
IPV4_A_PUBLIC_2_NUM_MIN
public static final long IPV4_A_PUBLIC_2_NUM_MINIpv4 A类地址第二个公网网段最小值数值形式 -
IPV4_A_PUBLIC_2_STR_MAX
Ipv4 A类地址第二个公网网段最大值字符串形式- See Also:
-
IPV4_A_PUBLIC_2_NUM_MAX
public static final long IPV4_A_PUBLIC_2_NUM_MAXIpv4 A类地址第二个公网网段最大值数值形式 -
IPV4_B_STR_MIN
Ipv4 B类地址最小值字符串形式- See Also:
-
IPV4_B_NUM_MIN
public static final long IPV4_B_NUM_MINIpv4 B类地址最小值数值形式 -
IPV4_B_STR_MAX
Ipv4 B类地址最大值字符串形式- See Also:
-
IPV4_B_NUM_MAX
public static final long IPV4_B_NUM_MAXIpv4 B类地址最大值数值形式 -
IPV4_B_PUBLIC_1_STR_MIN
Ipv4 B类地址第一个公网网段最小值字符串形式- See Also:
-
IPV4_B_PUBLIC_1_NUM_MIN
public static final long IPV4_B_PUBLIC_1_NUM_MINIpv4 B类地址第一个公网网段最小值数值形式 -
IPV4_B_PUBLIC_1_STR_MAX
Ipv4 B类地址第一个公网网段最大值字符串形式- See Also:
-
IPV4_B_PUBLIC_1_NUM_MAX
public static final long IPV4_B_PUBLIC_1_NUM_MAXIpv4 B类地址第一个公网网段最大值数值形式 -
IPV4_B_PRIVATE_STR_MIN
Ipv4 B类地址私网网段最小值字符串形式- See Also:
-
IPV4_B_PRIVATE_NUM_MIN
public static final long IPV4_B_PRIVATE_NUM_MINIpv4 B类地址私网网段最小值数值形式 -
IPV4_B_PRIVATE_STR_MAX
Ipv4 B类地址私网网段最大值字符串形式- See Also:
-
IPV4_B_PRIVATE_NUM_MAX
public static final long IPV4_B_PRIVATE_NUM_MAXIpv4 B类地址私网网段最大值数值形式 -
IPV4_B_PUBLIC_2_STR_MIN
Ipv4 B类地址第二个公网网段最小值字符串形式- See Also:
-
IPV4_B_PUBLIC_2_NUM_MIN
public static final long IPV4_B_PUBLIC_2_NUM_MINIpv4 B类地址第二个公网网段最小值数值形式 -
IPV4_B_PUBLIC_2_STR_MAX
Ipv4 B类地址第二个公网网段最大值字符串形式- See Also:
-
IPV4_B_PUBLIC_2_NUM_MAX
public static final long IPV4_B_PUBLIC_2_NUM_MAXIpv4 B类地址第二个公网网段最大值数值形式 -
IPV4_C_STR_MIN
Ipv4 C类地址最小值字符串形式- See Also:
-
IPV4_C_NUM_MIN
public static final long IPV4_C_NUM_MINIpv4 C类地址最小值数值形式 -
IPV4_C_STR_MAX
Ipv4 C类地址最大值字符串形式- See Also:
-
IPV4_C_PUBLIC_1_STR_MIN
Ipv4 C类地址第一个公网网段最小值字符串形式- See Also:
-
IPV4_C_PUBLIC_1_NUM_MIN
public static final long IPV4_C_PUBLIC_1_NUM_MINIpv4 C类地址第一个公网网段最小值数值形式 -
IPV4_C_PUBLIC_1_STR_MAX
Ipv4 C类地址第一个公网网段最大值字符串形式- See Also:
-
IPV4_C_PUBLIC_1_NUM_MAX
public static final long IPV4_C_PUBLIC_1_NUM_MAXIpv4 C类地址第一个公网网段最大值数值形式 -
IPV4_C_PRIVATE_STR_MIN
Ipv4 C类地址私网网段最小值字符串形式- See Also:
-
IPV4_C_PRIVATE_NUM_MIN
public static final long IPV4_C_PRIVATE_NUM_MINIpv4 C类地址私网网段最小值数值形式 -
IPV4_C_PRIVATE_STR_MAX
Ipv4 C类地址私网网段最大值字符串形式- See Also:
-
IPV4_C_PRIVATE_NUM_MAX
public static final long IPV4_C_PRIVATE_NUM_MAXIpv4 C类地址私网网段最大值数值形式 -
IPV4_C_PUBLIC_2_STR_MIN
Ipv4 C类地址第二个公网网段最小值字符串形式- See Also:
-
IPV4_C_PUBLIC_2_NUM_MIN
public static final long IPV4_C_PUBLIC_2_NUM_MINIpv4 C类地址第二个公网网段最小值数值形式 -
IPV4_C_PUBLIC_2_STR_MAX
Ipv4 C类地址第二个公网网段最大值字符串形式- See Also:
-
IPV4_C_PUBLIC_2_NUM_MAX
public static final long IPV4_C_PUBLIC_2_NUM_MAXIpv4 C类地址第二个公网网段最大值数值形式 -
IPV4_D_STR_MIN
Ipv4 D类地址最小值字符串形式- See Also:
-
IPV4_D_NUM_MIN
public static final long IPV4_D_NUM_MINIpv4 D类地址最小值数值形式 -
IPV4_D_STR_MAX
Ipv4 D类地址最大值字符串形式- See Also:
-
IPV4_D_NUM_MAX
public static final long IPV4_D_NUM_MAXIpv4 D类地址最大值数值形式 -
IPV4_D_DEDICATED_STR_MIN
Ipv4 D类地址专用网段(用于广播)最小值字符串形式- See Also:
-
IPV4_D_DEDICATED_NUM_MIN
public static final long IPV4_D_DEDICATED_NUM_MINIpv4 D类地址专用网段(用于广播)最小值数值形式 -
IPV4_D_DEDICATED_STR_MAX
Ipv4 D类地址专用网段(用于广播)最大值字符串形式- See Also:
-
IPV4_D_DEDICATED_NUM_MAX
public static final long IPV4_D_DEDICATED_NUM_MAXIpv4 D类地址专用网段(用于广播)最大值数值形式 -
IPV4_D_PUBLIC_STR_MIN
Ipv4 D类地址公用网段(用于组播)最小值字符串形式- See Also:
-
IPV4_D_PUBLIC_NUM_MIN
public static final long IPV4_D_PUBLIC_NUM_MINIpv4 D类地址公用网段(用于组播)最小值数值形式 -
IPV4_D_PUBLIC_STR_MAX
Ipv4 D类地址公用网段(用于组播)最大值字符串形式- See Also:
-
IPV4_D_PUBLIC_NUM_MAX
public static final long IPV4_D_PUBLIC_NUM_MAXIpv4 D类地址公用网段(用于组播)最大值数值形式 -
IPV4_D_PRIVATE_STR_MIN
Ipv4 D类地址私用网段(用于测试)最小值字符串形式- See Also:
-
IPV4_D_PRIVATE_NUM_MIN
public static final long IPV4_D_PRIVATE_NUM_MINIpv4 D类地址私用网段(用于测试)最小值数值形式 -
IPV4_D_PRIVATE_STR_MAX
Ipv4 D类地址私用网段(用于测试)最大值字符串形式- See Also:
-
IPV4_D_PRIVATE_NUM_MAX
public static final long IPV4_D_PRIVATE_NUM_MAXIpv4 D类地址私用网段(用于测试)最大值数值形式 -
IPV4_E_STR_MIN
Ipv4 E类地址最小值字符串形式- See Also:
-
IPV4_E_NUM_MIN
public static final long IPV4_E_NUM_MINIpv4 E类地址最小值数值形式 -
IPV4_E_STR_MAX
Ipv4 E类地址最大值字符串形式- See Also:
-
IPV4_E_NUM_MAX
public static final long IPV4_E_NUM_MAXIpv4 E类地址最大值数值形式
-
-
Constructor Details
-
IPv4
public IPv4()
-
-
Method Details
-
getLocalHostName
获取主机名称,一次获取会缓存名称 注意此方法会触发反向DNS解析,导致阻塞,阻塞时间取决于网络!- Returns:
- 主机名称
-
getLocalMacAddress
获得本机MAC地址,默认使用获取到的IPv4本地地址对应网卡- Returns:
- 本机MAC地址
-
getLocalHardwareAddress
public static byte[] getLocalHardwareAddress()获得本机物理地址- Returns:
- 本机物理地址
-
getLocalhost
获取本机网卡IPv4地址,规则如下:- 必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址
- 多网卡则返回第一个满足条件的地址
- 如果无满足要求的地址,调用
InetAddress.getLocalHost()获取地址
此方法不会抛出异常,获取失败将返回
null- Returns:
- 本机网卡IP地址,获取失败返回
null
-
getLocalhostDirectly
获取本机网卡IPv4地址,不使用缓存,规则如下:- 必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址
- 多网卡则返回第一个满足条件的地址
- 如果无满足要求的地址,调用
InetAddress.getLocalHost()获取地址
此方法不会抛出异常,获取失败将返回
null- Returns:
- 本机网卡IP地址,获取失败返回
null
-
getLocalhostDirectly
获取本机网卡IPv4地址,不使用缓存,规则如下:- 必须非回路(loopback)地址、IPv4地址
- 多网卡则返回第一个满足条件的地址
- 如果无满足要求的地址,调用
InetAddress.getLocalHost()获取地址
此方法不会抛出异常,获取失败将返回
null- Parameters:
includeSiteLocal- 是否包含局域网地址,如10.0.0.0 ~ 10.255.255.255、172.16.0.0 ~ 172.31.255.255、192.168.0.0 ~ 192.168.255.255- Returns:
- 本机网卡IP地址,获取失败返回
null
-
buildInetSocketAddress
构建InetSocketAddress 当host中包含端口时(用“:”隔开),使用host中的端口,否则使用默认端口 给定host为空时使用本地host(127.0.0.1)- Parameters:
host- HostdefaultPort- 默认端口- Returns:
- InetSocketAddress
-
formatIpBlock
根据 ip地址 和 掩码地址 获得 CIDR格式字符串- Parameters:
ip- IP地址,点分十进制,如:xxx.xxx.xxx.xxxmask- 掩码地址,点分十进制,如:255.255.255.0- Returns:
- 返回 xxx.xxx.xxx.xxx/掩码位 的格式,例如:192.168.1.101/24
-
list
智能获取指定区间内的所有IP地址- Parameters:
ipRange- IP区间,支持 X.X.X.X-X.X.X.X 或 X.X.X.X/XisAll- true:全量地址,false:可用地址;该参数仅在ipRange为X.X.X.X/X时才生效- Returns:
- 区间内的所有IP地址,点分十进制格式
-
list
根据 IP地址 和 掩码位数 获取 子网所有ip地址- Parameters:
ip- IP地址,点分十进制maskBit- 掩码位,例如24、32isAll- true:全量地址,false:可用地址- Returns:
- 子网所有ip地址
-
list
获得 指定区间内 所有ip地址- Parameters:
ipFrom- 开始IP,包含,点分十进制ipTo- 结束IP,包含,点分十进制- Returns:
- 区间内所有ip地址
-
list
得到指定区间内的所有IP地址- Parameters:
ipFrom- 开始IP, 包含ipTo- 结束IP, 包含- Returns:
- 区间内所有ip地址,点分十进制表示
-
longToIpv4
根据 ip的long值 获取 ip字符串,即:xxx.xxx.xxx.xxx- Parameters:
ip- IP的long表示形式- Returns:
- 点分十进制ip地址
-
ipv4ToLong
将 ip字符串 转换为 long值方法别名:inet_aton
- Parameters:
strIp- ip地址,点分十进制,xxx.xxx.xxx.xxx- Returns:
- ip的long值
-
getBeginIpString
根据 ip 和 掩码位 获取 子网的起始IP(字符串型)方法别名:inet_ntoa
- Parameters:
ip- 给定的IP,点分十进制,如:xxx.xxx.xxx.xxxmaskBit- 给定的掩码位,如:30- Returns:
- 起始IP的字符串表示
-
getBeginIpLong
根据 ip 和 掩码位 获取 子网的起始IP(Long型)- Parameters:
ip- 给定的IP,点分十进制,如:xxx.xxx.xxx.xxxmaskBit- 给定的掩码位,如:30- Returns:
- 起始IP的长整型表示
-
getEndIpString
根据 ip 和 掩码位 获取 子网的终止IP(字符串型)- Parameters:
ip- 给定的IP,点分十进制,如:xxx.xxx.xxx.xxxmaskBit- 给定的掩码位,如:30- Returns:
- 终止IP的字符串表示
-
getEndIpLong
根据 ip 和 掩码位 获取 子网的终止IP(Long型)- Parameters:
ip- 给定的IP,点分十进制,如:xxx.xxx.xxx.xxxmaskBit- 给定的掩码位,如:30- Returns:
- 终止IP的长整型表示
-
getMaskBitByMask
将 子网掩码 转换为 掩码位- Parameters:
mask- 掩码的点分十进制表示,例如 255.255.255.0- Returns:
- 掩码位,例如 24
- Throws:
IllegalArgumentException- 子网掩码非法
-
countByMaskBit
public static int countByMaskBit(int maskBit, boolean isAll) 获取 子网内的 地址总数- Parameters:
maskBit- 掩码位,取值范围:(IPV4_MASK_BIT_VALID_MIN,IPV4_MASK_BIT_MAX]isAll- true:全量地址,false:可用地址- Returns:
- 子网内地址总数
-
getMaskByMaskBit
根据 掩码位 获取 掩码地址- Parameters:
maskBit- 掩码位,如:24,取值范围:[IPV4_MASK_BIT_VALID_MIN,IPV4_MASK_BIT_MAX]- Returns:
- 掩码地址,点分十进制,如:255.255.255.0
-
getMaskByIpRange
根据 开始IP 与 结束IP 获取 掩码地址- Parameters:
fromIp- 开始IP,包含,点分十进制toIp- 结束IP,包含,点分十进制- Returns:
- 掩码地址,点分十进制
-
countByIpRange
获得 指定区间内的 ip数量- Parameters:
fromIp- 开始IP,包含,点分十进制toIp- 结束IP,包含,点分十进制- Returns:
- IP数量
-
countByIpRange
public static int countByIpRange(long fromIp, long toIp) 获得 指定区间内的 ip数量- Parameters:
fromIp- 开始IP,包含toIp- 结束IP,包含- Returns:
- IP数量
-
isMaskValid
判断掩码是否合法- Parameters:
mask- 掩码的点分十进制表示,例如 255.255.255.0- Returns:
- true:掩码合法;false:掩码不合法
-
isMaskBitValid
public static boolean isMaskBitValid(int maskBit) 判断掩码位是否合法- Parameters:
maskBit- 掩码位,有效范围:[IPV4_MASK_BIT_VALID_MIN,IPV4_MASK_BIT_MAX]- Returns:
- true:掩码位合法;false:掩码位不合法
-
isInnerIP
判定是否为内网IPv4 私有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这个网段是环回地址- Parameters:
ipAddress- IP地址,点分十进制- Returns:
- 是否为内网IP
-
isInnerIP
public static boolean isInnerIP(long ipNum) 是否为内网地址- Parameters:
ipNum- IP地址数值形式- Returns:
- 是否为内网IP
- See Also:
-
isPublicIP
是否为公网地址 公网IP:A类 1.0.0.0-9.255.255.255,11.0.0.0-126.255.255.255 B类 128.0.0.0-172.15.255.255,172.32.0.0-191.255.255.255 C类 192.0.0.0-192.167.255.255,192.169.0.0-223.255.255.255
- Parameters:
ipAddress- IP地址,点分十进制- Returns:
- 是否为公网IP
-
isPublicIP
public static boolean isPublicIP(long ipNum) 是否为公网地址- Parameters:
ipNum- IP地址数值形式- Returns:
- 是否为公网IP
- See Also:
-
getPartOfIp
public static int getPartOfIp(long ip, int position) 获取ip(Long类型)指定部分的十进制值,即,X.X.X.X 形式中每个部分的值例如,ip为0xC0A802FA:
- 第1部分的值为:0xC0,十进制值为:192
- 第2部分的值为:0xA8,十进制值为:168
- 第3部分的值为:0x02,十进制值为:2
- 第4部分的值为:0xFA,十进制值为:250
- Parameters:
ip- ip地址,Long类型position- 指定位置,取值范围:[1,4]- Returns:
- ip地址指定部分的十进制值
-
matches
检测指定 IP 地址是否匹配通配符 wildcard- Parameters:
wildcard- 通配符,如 192.168.*.1ipAddress- 待检测的 IP 地址- Returns:
- 是否匹配
-