Class IPv4

java.lang.Object
org.miaixz.bus.core.net.ip.IPv4

public class IPv4 extends Object
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 Details

    • LOCAL_IP_NUM

      public static final long LOCAL_IP_NUM
      localhost默认解析的ip地址的数值形式
    • IPV4_NUM_MIN

      public static final long IPV4_NUM_MIN
      Ipv4最小值数值形式
    • IPV4_UNUSED_NUM_MIN

      public static final long IPV4_UNUSED_NUM_MIN
      Ipv4未使用地址最小值数值形式
    • IPV4_UNUSED_NUM_MAX

      public static final long IPV4_UNUSED_NUM_MAX
      Ipv4未使用地址最大值数值形式
    • IPV4_MASK_BIT_MIN

      public static final int IPV4_MASK_BIT_MIN
      Ipv4最小掩码位
      See Also:
    • IPV4_MASK_BIT_VALID_MIN

      public static final int IPV4_MASK_BIT_VALID_MIN
      Ipv4有意义的最小掩码位
      See Also:
    • IPV4_MASK_VALID_MIN

      public static final String IPV4_MASK_VALID_MIN
      Ipv4有意义的最小掩码字符串
    • IPV4_MASK_BIT_MAX

      public static final int IPV4_MASK_BIT_MAX
      Ipv4最大掩码位
      See Also:
    • IPV4_MASK_MAX

      public static final String IPV4_MASK_MAX
      Ipv4最大掩码字符串
    • IPV4_LOOPBACK_STR_MIN

      public static final String IPV4_LOOPBACK_STR_MIN
      Ipv4 本地回环地址最小值字符串形式
      See Also:
    • IPV4_LOOPBACK_NUM_MIN

      public static final long IPV4_LOOPBACK_NUM_MIN
      Ipv4 本地回环地址最小值数值形式
    • IPV4_LOOPBACK_STR_MAX

      public static final String IPV4_LOOPBACK_STR_MAX
      Ipv4 本地回环地址最大值字符串形式
      See Also:
    • IPV4_LOOPBACK_NUM_MAX

      public static final long IPV4_LOOPBACK_NUM_MAX
      Ipv4 本地回环地址最大值数值形式
    • IPV4_A_STR_MIN

      public static final String IPV4_A_STR_MIN
      Ipv4 A类地址最小值字符串形式
      See Also:
    • IPV4_A_NUM_MIN

      public static final long IPV4_A_NUM_MIN
      Ipv4 A类地址最小值数值形式
    • IPV4_A_STR_MAX

      public static final String IPV4_A_STR_MAX
      Ipv4 A类地址最大值字符串形式
      See Also:
    • IPV4_A_NUM_MAX

      public static final long IPV4_A_NUM_MAX
      Ipv4 A类地址最大值数值形式
    • IPV4_A_PUBLIC_1_STR_MIN

      public static final String 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_MIN
      Ipv4 A类地址第一个公网网段最小值数值形式
    • IPV4_A_PUBLIC_1_STR_MAX

      public static final String 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_MAX
      Ipv4 A类地址第一个公网网段最大值数值形式
    • IPV4_A_PRIVATE_STR_MIN

      public static final String IPV4_A_PRIVATE_STR_MIN
      Ipv4 A类地址私网网段最小值字符串形式
      See Also:
    • IPV4_A_PRIVATE_NUM_MIN

      public static final long IPV4_A_PRIVATE_NUM_MIN
      Ipv4 A类地址私网网段最小值数值形式
    • IPV4_A_PRIVATE_STR_MAX

      public static final String IPV4_A_PRIVATE_STR_MAX
      Ipv4 A类地址私网网段最大值字符串形式
      See Also:
    • IPV4_A_PRIVATE_NUM_MAX

      public static final long IPV4_A_PRIVATE_NUM_MAX
      Ipv4 A类地址私网网段最大值数值形式
    • IPV4_A_PUBLIC_2_STR_MIN

      public static final String 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_MIN
      Ipv4 A类地址第二个公网网段最小值数值形式
    • IPV4_A_PUBLIC_2_STR_MAX

      public static final String 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_MAX
      Ipv4 A类地址第二个公网网段最大值数值形式
    • IPV4_B_STR_MIN

      public static final String IPV4_B_STR_MIN
      Ipv4 B类地址最小值字符串形式
      See Also:
    • IPV4_B_NUM_MIN

      public static final long IPV4_B_NUM_MIN
      Ipv4 B类地址最小值数值形式
    • IPV4_B_STR_MAX

      public static final String IPV4_B_STR_MAX
      Ipv4 B类地址最大值字符串形式
      See Also:
    • IPV4_B_NUM_MAX

      public static final long IPV4_B_NUM_MAX
      Ipv4 B类地址最大值数值形式
    • IPV4_B_PUBLIC_1_STR_MIN

      public static final String 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_MIN
      Ipv4 B类地址第一个公网网段最小值数值形式
    • IPV4_B_PUBLIC_1_STR_MAX

      public static final String 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_MAX
      Ipv4 B类地址第一个公网网段最大值数值形式
    • IPV4_B_PRIVATE_STR_MIN

      public static final String IPV4_B_PRIVATE_STR_MIN
      Ipv4 B类地址私网网段最小值字符串形式
      See Also:
    • IPV4_B_PRIVATE_NUM_MIN

      public static final long IPV4_B_PRIVATE_NUM_MIN
      Ipv4 B类地址私网网段最小值数值形式
    • IPV4_B_PRIVATE_STR_MAX

      public static final String IPV4_B_PRIVATE_STR_MAX
      Ipv4 B类地址私网网段最大值字符串形式
      See Also:
    • IPV4_B_PRIVATE_NUM_MAX

      public static final long IPV4_B_PRIVATE_NUM_MAX
      Ipv4 B类地址私网网段最大值数值形式
    • IPV4_B_PUBLIC_2_STR_MIN

      public static final String 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_MIN
      Ipv4 B类地址第二个公网网段最小值数值形式
    • IPV4_B_PUBLIC_2_STR_MAX

      public static final String 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_MAX
      Ipv4 B类地址第二个公网网段最大值数值形式
    • IPV4_C_STR_MIN

      public static final String IPV4_C_STR_MIN
      Ipv4 C类地址最小值字符串形式
      See Also:
    • IPV4_C_NUM_MIN

      public static final long IPV4_C_NUM_MIN
      Ipv4 C类地址最小值数值形式
    • IPV4_C_STR_MAX

      public static final String IPV4_C_STR_MAX
      Ipv4 C类地址最大值字符串形式
      See Also:
    • IPV4_C_PUBLIC_1_STR_MIN

      public static final String 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_MIN
      Ipv4 C类地址第一个公网网段最小值数值形式
    • IPV4_C_PUBLIC_1_STR_MAX

      public static final String 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_MAX
      Ipv4 C类地址第一个公网网段最大值数值形式
    • IPV4_C_PRIVATE_STR_MIN

      public static final String IPV4_C_PRIVATE_STR_MIN
      Ipv4 C类地址私网网段最小值字符串形式
      See Also:
    • IPV4_C_PRIVATE_NUM_MIN

      public static final long IPV4_C_PRIVATE_NUM_MIN
      Ipv4 C类地址私网网段最小值数值形式
    • IPV4_C_PRIVATE_STR_MAX

      public static final String IPV4_C_PRIVATE_STR_MAX
      Ipv4 C类地址私网网段最大值字符串形式
      See Also:
    • IPV4_C_PRIVATE_NUM_MAX

      public static final long IPV4_C_PRIVATE_NUM_MAX
      Ipv4 C类地址私网网段最大值数值形式
    • IPV4_C_PUBLIC_2_STR_MIN

      public static final String 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_MIN
      Ipv4 C类地址第二个公网网段最小值数值形式
    • IPV4_C_PUBLIC_2_STR_MAX

      public static final String 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_MAX
      Ipv4 C类地址第二个公网网段最大值数值形式
    • IPV4_D_STR_MIN

      public static final String IPV4_D_STR_MIN
      Ipv4 D类地址最小值字符串形式
      See Also:
    • IPV4_D_NUM_MIN

      public static final long IPV4_D_NUM_MIN
      Ipv4 D类地址最小值数值形式
    • IPV4_D_STR_MAX

      public static final String IPV4_D_STR_MAX
      Ipv4 D类地址最大值字符串形式
      See Also:
    • IPV4_D_NUM_MAX

      public static final long IPV4_D_NUM_MAX
      Ipv4 D类地址最大值数值形式
    • IPV4_D_DEDICATED_STR_MIN

      public static final String IPV4_D_DEDICATED_STR_MIN
      Ipv4 D类地址专用网段(用于广播)最小值字符串形式
      See Also:
    • IPV4_D_DEDICATED_NUM_MIN

      public static final long IPV4_D_DEDICATED_NUM_MIN
      Ipv4 D类地址专用网段(用于广播)最小值数值形式
    • IPV4_D_DEDICATED_STR_MAX

      public static final String IPV4_D_DEDICATED_STR_MAX
      Ipv4 D类地址专用网段(用于广播)最大值字符串形式
      See Also:
    • IPV4_D_DEDICATED_NUM_MAX

      public static final long IPV4_D_DEDICATED_NUM_MAX
      Ipv4 D类地址专用网段(用于广播)最大值数值形式
    • IPV4_D_PUBLIC_STR_MIN

      public static final String IPV4_D_PUBLIC_STR_MIN
      Ipv4 D类地址公用网段(用于组播)最小值字符串形式
      See Also:
    • IPV4_D_PUBLIC_NUM_MIN

      public static final long IPV4_D_PUBLIC_NUM_MIN
      Ipv4 D类地址公用网段(用于组播)最小值数值形式
    • IPV4_D_PUBLIC_STR_MAX

      public static final String IPV4_D_PUBLIC_STR_MAX
      Ipv4 D类地址公用网段(用于组播)最大值字符串形式
      See Also:
    • IPV4_D_PUBLIC_NUM_MAX

      public static final long IPV4_D_PUBLIC_NUM_MAX
      Ipv4 D类地址公用网段(用于组播)最大值数值形式
    • IPV4_D_PRIVATE_STR_MIN

      public static final String IPV4_D_PRIVATE_STR_MIN
      Ipv4 D类地址私用网段(用于测试)最小值字符串形式
      See Also:
    • IPV4_D_PRIVATE_NUM_MIN

      public static final long IPV4_D_PRIVATE_NUM_MIN
      Ipv4 D类地址私用网段(用于测试)最小值数值形式
    • IPV4_D_PRIVATE_STR_MAX

      public static final String IPV4_D_PRIVATE_STR_MAX
      Ipv4 D类地址私用网段(用于测试)最大值字符串形式
      See Also:
    • IPV4_D_PRIVATE_NUM_MAX

      public static final long IPV4_D_PRIVATE_NUM_MAX
      Ipv4 D类地址私用网段(用于测试)最大值数值形式
    • IPV4_E_STR_MIN

      public static final String IPV4_E_STR_MIN
      Ipv4 E类地址最小值字符串形式
      See Also:
    • IPV4_E_NUM_MIN

      public static final long IPV4_E_NUM_MIN
      Ipv4 E类地址最小值数值形式
    • IPV4_E_STR_MAX

      public static final String IPV4_E_STR_MAX
      Ipv4 E类地址最大值字符串形式
      See Also:
    • IPV4_E_NUM_MAX

      public static final long IPV4_E_NUM_MAX
      Ipv4 E类地址最大值数值形式
  • Constructor Details

    • IPv4

      public IPv4()
  • Method Details

    • getLocalHostName

      public static String getLocalHostName()
      获取主机名称,一次获取会缓存名称 注意此方法会触发反向DNS解析,导致阻塞,阻塞时间取决于网络!
      Returns:
      主机名称
    • getLocalMacAddress

      public static String getLocalMacAddress()
      获得本机MAC地址,默认使用获取到的IPv4本地地址对应网卡
      Returns:
      本机MAC地址
    • getLocalHardwareAddress

      public static byte[] getLocalHardwareAddress()
      获得本机物理地址
      Returns:
      本机物理地址
    • getLocalhost

      public static InetAddress getLocalhost()
      获取本机网卡IPv4地址,规则如下:
      • 必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址
      • 多网卡则返回第一个满足条件的地址
      • 如果无满足要求的地址,调用 InetAddress.getLocalHost() 获取地址

      此方法不会抛出异常,获取失败将返回null

      Returns:
      本机网卡IP地址,获取失败返回null
    • getLocalhostDirectly

      public static InetAddress getLocalhostDirectly()
      获取本机网卡IPv4地址,不使用缓存,规则如下:
      • 必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址
      • 多网卡则返回第一个满足条件的地址
      • 如果无满足要求的地址,调用 InetAddress.getLocalHost() 获取地址

      此方法不会抛出异常,获取失败将返回null

      Returns:
      本机网卡IP地址,获取失败返回null
    • getLocalhostDirectly

      public static InetAddress getLocalhostDirectly(boolean includeSiteLocal)
      获取本机网卡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

      public static InetSocketAddress buildInetSocketAddress(String host, int defaultPort)
      构建InetSocketAddress 当host中包含端口时(用“:”隔开),使用host中的端口,否则使用默认端口 给定host为空时使用本地host(127.0.0.1)
      Parameters:
      host - Host
      defaultPort - 默认端口
      Returns:
      InetSocketAddress
    • formatIpBlock

      public static String formatIpBlock(String ip, String mask)
      根据 ip地址 和 掩码地址 获得 CIDR格式字符串
      Parameters:
      ip - IP地址,点分十进制,如:xxx.xxx.xxx.xxx
      mask - 掩码地址,点分十进制,如:255.255.255.0
      Returns:
      返回 xxx.xxx.xxx.xxx/掩码位 的格式,例如:192.168.1.101/24
    • list

      public static List<String> list(String ipRange, boolean isAll)
      智能获取指定区间内的所有IP地址
      Parameters:
      ipRange - IP区间,支持 X.X.X.X-X.X.X.X 或 X.X.X.X/X
      isAll - true:全量地址,false:可用地址;该参数仅在ipRange为X.X.X.X/X时才生效
      Returns:
      区间内的所有IP地址,点分十进制格式
    • list

      public static List<String> list(String ip, int maskBit, boolean isAll)
      根据 IP地址 和 掩码位数 获取 子网所有ip地址
      Parameters:
      ip - IP地址,点分十进制
      maskBit - 掩码位,例如24、32
      isAll - true:全量地址,false:可用地址
      Returns:
      子网所有ip地址
    • list

      public static List<String> list(String ipFrom, String ipTo)
      获得 指定区间内 所有ip地址
      Parameters:
      ipFrom - 开始IP,包含,点分十进制
      ipTo - 结束IP,包含,点分十进制
      Returns:
      区间内所有ip地址
    • list

      public static List<String> list(long ipFrom, long ipTo)
      得到指定区间内的所有IP地址
      Parameters:
      ipFrom - 开始IP, 包含
      ipTo - 结束IP, 包含
      Returns:
      区间内所有ip地址,点分十进制表示
    • longToIpv4

      public static String longToIpv4(long ip)
      根据 ip的long值 获取 ip字符串,即:xxx.xxx.xxx.xxx
      Parameters:
      ip - IP的long表示形式
      Returns:
      点分十进制ip地址
    • ipv4ToLong

      public static long ipv4ToLong(String strIp)
      将 ip字符串 转换为 long值

      方法别名:inet_aton

      Parameters:
      strIp - ip地址,点分十进制,xxx.xxx.xxx.xxx
      Returns:
      ip的long值
    • getBeginIpString

      public static String getBeginIpString(String ip, int maskBit)
      根据 ip 和 掩码位 获取 子网的起始IP(字符串型)

      方法别名:inet_ntoa

      Parameters:
      ip - 给定的IP,点分十进制,如:xxx.xxx.xxx.xxx
      maskBit - 给定的掩码位,如:30
      Returns:
      起始IP的字符串表示
    • getBeginIpLong

      public static long getBeginIpLong(String ip, int maskBit)
      根据 ip 和 掩码位 获取 子网的起始IP(Long型)
      Parameters:
      ip - 给定的IP,点分十进制,如:xxx.xxx.xxx.xxx
      maskBit - 给定的掩码位,如:30
      Returns:
      起始IP的长整型表示
    • getEndIpString

      public static String getEndIpString(String ip, int maskBit)
      根据 ip 和 掩码位 获取 子网的终止IP(字符串型)
      Parameters:
      ip - 给定的IP,点分十进制,如:xxx.xxx.xxx.xxx
      maskBit - 给定的掩码位,如:30
      Returns:
      终止IP的字符串表示
    • getEndIpLong

      public static long getEndIpLong(String ip, int maskBit)
      根据 ip 和 掩码位 获取 子网的终止IP(Long型)
      Parameters:
      ip - 给定的IP,点分十进制,如:xxx.xxx.xxx.xxx
      maskBit - 给定的掩码位,如:30
      Returns:
      终止IP的长整型表示
    • getMaskBitByMask

      public static int getMaskBitByMask(String mask)
      将 子网掩码 转换为 掩码位
      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

      public static String getMaskByMaskBit(int maskBit)
      根据 掩码位 获取 掩码地址
      Parameters:
      maskBit - 掩码位,如:24,取值范围:[IPV4_MASK_BIT_VALID_MIN, IPV4_MASK_BIT_MAX]
      Returns:
      掩码地址,点分十进制,如:255.255.255.0
    • getMaskByIpRange

      public static String getMaskByIpRange(String fromIp, String toIp)
      根据 开始IP 与 结束IP 获取 掩码地址
      Parameters:
      fromIp - 开始IP,包含,点分十进制
      toIp - 结束IP,包含,点分十进制
      Returns:
      掩码地址,点分十进制
    • countByIpRange

      public static int countByIpRange(String fromIp, String toIp)
      获得 指定区间内的 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

      public static boolean isMaskValid(String mask)
      判断掩码是否合法
      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

      public static boolean isInnerIP(String ipAddress)
      判定是否为内网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

      public static boolean isPublicIP(String ipAddress)
      是否为公网地址

      公网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

      public static boolean matches(String wildcard, String ipAddress)
      检测指定 IP 地址是否匹配通配符 wildcard
      Parameters:
      wildcard - 通配符,如 192.168.*.1
      ipAddress - 待检测的 IP 地址
      Returns:
      是否匹配