Hutool Hutool
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
  • 快速入门

  • 核心(hutool-core)

    • AI(Hutool-ai)

    • 注解(annotation)

    • 数组(array)

    • JavaBean(bean)

    • 缓存(cache)

    • 类加载器(classloader)

    • 编码解码(codec)

    • 集合(collection)

    • 比较器(comparator)

    • 压缩(compress)

    • 类型转换(convert)

    • 数据(data)

    • 日期时间(date)

    • 异常(exception)

    • 函数(func)

    • IO流(io)

    • 语言特性(lang)

    • Map(map)

    • 数字数学(math)

    • 网络(net)

      • 网络
      • NetUtil
      • Ipv4Util
        • 主要功能
        • IP地址解析与转换
          • ipv4ToLong(String ip)
          • longToIpv4(long ipLong)
          • ipToBytes(String ip)
          • bytesToIp(byte[] bytes)
        • IP地址验证
          • isValid(String ip)
          • isLoopback(String ip)
          • isPrivate(String ip)
        • CIDR处理
          • parseCidr(String cidr)
          • getCidrStartIp(String cidr)
          • getCidrEndIp(String cidr)
          • getCidrMask(String cidr)
          • getCidrIps(String cidr)
        • 本地IP地址获取
          • getLocalhost()
          • getLocalhostStr()
          • getLocalHostName()
        • IP地址范围计算
          • getIpRange(String startIp, String endIp)
          • isInRange(String ip, String startIp, String endIp)
        • 子网掩码处理
          • maskToMaskBit(String mask)
          • maskBitToMask(int maskBit)
          • getNetmask(String ip, String mask)
          • getBroadcastAddress(String ip, String mask)
        • MAC地址获取
          • getLocalMacAddress()
          • getLocalHardwareAddress()
        • 注意事项
        • 总结
      • Ipv6Util
      • MacAddressUtil
      • KeyManagerUtil
      • SSL上下文工具-SSLContextUtil
      • 信任管理器工具-TrustManagerUtil
      • URL构建器-UrlBuilder
      • URL协议工具-UrlProtocolUtil
      • URL查询工具-UrlQueryUtil
      • URL工具-UrlUtil
    • 对象池(pool)

    • 反射(reflect)

    • 正则(regex)

    • 服务提供(spi)

    • 聚合操作(stream)

    • 字符串文本(text)

    • 并发和线程(thread)

    • 树结构(tree)

    • 工具集合(util)

    • XML操作(xml)

  • 定时任务(hutool-cron)

  • 加密(hutool-crypto)

  • 数据库(hutool-db)

  • 扩展(hutool-extra)

  • HTTP(hutool-http)

  • 日志(hutool-log)

  • 配置文件(hutool-setting)

  • JSON(hutool-json)

  • Office办公(hutool-poi)

  • 套接字(hutool-socket)

  • GUI(hutool-swing)

  • 指南
  • 核心(hutool-core)
  • 网络(net)
Hutool
2026-01-03
目录

Ipv4Util

Ipv4Util是Hutool中用于处理IPv4地址的核心工具类,提供了丰富的IPv4地址处理功能,包括IP地址的解析、转换、验证、CIDR处理等。

# 主要功能

  • IP地址解析与转换:IP地址的点分十进制与long类型转换
  • IP地址验证:验证IPv4地址的有效性
  • CIDR处理:CIDR地址的解析、转换、验证等
  • 本地IP地址获取:获取本地IPv4地址
  • IP地址范围计算:计算IP地址区间
  • 子网掩码处理:子网掩码的转换与验证
  • MAC地址获取:获取本地MAC地址

# IP地址解析与转换

# ipv4ToLong(String ip)

将IPv4地址字符串转换为long类型。

long ipLong = Ipv4Util.ipv4ToLong("192.168.1.1");
// 输出: 3232235777

# longToIpv4(long ipLong)

将long类型的IP地址转换为IPv4地址字符串。

String ip = Ipv4Util.longToIpv4(3232235777L);
// 输出: 192.168.1.1

# ipToBytes(String ip)

将IPv4地址字符串转换为字节数组。

byte[] bytes = Ipv4Util.ipToBytes("192.168.1.1");
// 输出: [-64, -88, 1, 1]

# bytesToIp(byte[] bytes)

将字节数组转换为IPv4地址字符串。

byte[] bytes = {-64, -88, 1, 1};
String ip = Ipv4Util.bytesToIp(bytes);
// 输出: 192.168.1.1

# IP地址验证

# isValid(String ip)

验证IPv4地址是否有效。

boolean isValid = Ipv4Util.isValid("192.168.1.1");
// 输出: true

boolean isValid2 = Ipv4Util.isValid("256.168.1.1");
// 输出: false

# isLoopback(String ip)

判断是否为回环地址(127.0.0.1/8)。

boolean isLoopback = Ipv4Util.isLoopback("127.0.0.1");
// 输出: true

boolean isLoopback2 = Ipv4Util.isLoopback("127.100.200.30");
// 输出: true

# isPrivate(String ip)

判断是否为私有IP地址。

boolean isPrivate = Ipv4Util.isPrivate("192.168.1.1");
// 输出: true

boolean isPrivate2 = Ipv4Util.isPrivate("10.0.0.1");
// 输出: true

boolean isPrivate3 = Ipv4Util.isPrivate("172.16.0.1");
// 输出: true

# CIDR处理

# parseCidr(String cidr)

解析CIDR地址,返回包含IP地址和掩码位的数组。

String[] cidrParts = Ipv4Util.parseCidr("192.168.1.0/24");
// 输出: ["192.168.1.0", "24"]

# getCidrStartIp(String cidr)

获取CIDR地址的起始IP。

String startIp = Ipv4Util.getCidrStartIp("192.168.1.0/24");
// 输出: 192.168.1.0

# getCidrEndIp(String cidr)

获取CIDR地址的结束IP。

String endIp = Ipv4Util.getCidrEndIp("192.168.1.0/24");
// 输出: 192.168.1.255

# getCidrMask(String cidr)

获取CIDR地址的子网掩码。

String mask = Ipv4Util.getCidrMask("192.168.1.0/24");
// 输出: 255.255.255.0

# getCidrIps(String cidr)

获取CIDR地址包含的所有IP地址。

List<String> ips = Ipv4Util.getCidrIps("192.168.1.0/30");
// 输出: ["192.168.1.0", "192.168.1.1", "192.168.1.2", "192.168.1.3"]

# 本地IP地址获取

# getLocalhost()

获取本地IPv4地址对象。

Inet4Address localhost = Ipv4Util.getLocalhost();
// 输出: /192.168.1.100

# getLocalhostStr()

获取本地IPv4地址字符串。

String localIp = Ipv4Util.getLocalhostStr();
// 输出: 192.168.1.100

# getLocalHostName()

获取本地主机名称。

String localhostName = Ipv4Util.getLocalHostName();
// 输出: DESKTOP-ABC123

# IP地址范围计算

# getIpRange(String startIp, String endIp)

获取指定IP地址范围内的所有IP地址。

List<String> ips = Ipv4Util.getIpRange("192.168.1.1", "192.168.1.5");
// 输出: ["192.168.1.1", "192.168.1.2", "192.168.1.3", "192.168.1.4", "192.168.1.5"]

# isInRange(String ip, String startIp, String endIp)

判断IP地址是否在指定范围内。

boolean isInRange = Ipv4Util.isInRange("192.168.1.3", "192.168.1.1", "192.168.1.5");
// 输出: true

boolean isInRange2 = Ipv4Util.isInRange("192.168.1.6", "192.168.1.1", "192.168.1.5");
// 输出: false

# 子网掩码处理

# maskToMaskBit(String mask)

将子网掩码转换为掩码位。

int maskBit = Ipv4Util.maskToMaskBit("255.255.255.0");
// 输出: 24

# maskBitToMask(int maskBit)

将掩码位转换为子网掩码。

String mask = Ipv4Util.maskBitToMask(24);
// 输出: 255.255.255.0

# getNetmask(String ip, String mask)

获取网络地址。

String netmask = Ipv4Util.getNetmask("192.168.1.100", "255.255.255.0");
// 输出: 192.168.1.0

# getBroadcastAddress(String ip, String mask)

获取广播地址。

String broadcast = Ipv4Util.getBroadcastAddress("192.168.1.100", "255.255.255.0");
// 输出: 192.168.1.255

# MAC地址获取

# getLocalMacAddress()

获取本地MAC地址。

String mac = Ipv4Util.getLocalMacAddress();
// 输出: 00:00:00:00:00:00(示例)

# getLocalHardwareAddress()

获取本地物理地址(字节数组形式)。

byte[] hardwareAddress = Ipv4Util.getLocalHardwareAddress();
// 输出: [0, 0, 0, 0, 0, 0](示例)

# 注意事项

  1. IP地址格式:IPv4地址必须是点分十进制格式,如"192.168.1.1"
  2. CIDR格式:CIDR地址格式为"IP/掩码位",如"192.168.1.0/24"
  3. 掩码位范围:掩码位的有效范围是1~32
  4. 性能考虑:获取大量IP地址范围时,应考虑性能问题
  5. 主机名解析:获取主机名可能会触发反向DNS解析,导致阻塞
  6. 权限问题:获取MAC地址可能需要管理员权限

# 总结

Ipv4Util提供了丰富的IPv4地址处理功能,涵盖了IP地址的解析、转换、验证、CIDR处理、IP地址范围计算、子网掩码处理和MAC地址获取等多个方面。通过使用Ipv4Util,可以大大简化Java中的IPv4地址处理,提高开发效率。

无论是网络配置、IP地址管理还是网络诊断,Ipv4Util都能提供简洁高效的解决方案。

NetUtil
Ipv6Util

← NetUtil Ipv6Util→

Theme by Vdoing | Copyright © 2025-2026 Hutool | Apache-2.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式