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)

      • 网络
        • 模块概述
        • JDK网络模块对比
          • JDK网络模块的不足
          • Hutool网络模块的优势
        • 核心类结构
        • 模块使用场景
        • 快速开始
          • IP地址处理
          • 端口检测
          • URL处理
          • MAC地址处理
        • 总结
      • NetUtil
      • Ipv4Util
      • 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
目录

网络

网络模块是Hutool的核心模块之一,提供了丰富的网络相关功能,涵盖了IP地址处理、网络工具、URL处理、SSL等多个方面。

# 模块概述

网络模块主要包括以下功能:

  • IP地址处理:IPv4、IPv6地址的解析、转换、验证等
  • 网络工具:端口检测、网络连接、本地IP获取等
  • MAC地址处理:MAC地址的获取、格式化等
  • URL处理:URL的解析、构建、编码等
  • SSL支持:SSL连接的创建和管理
  • 代理支持:代理服务器的配置和使用

# JDK网络模块对比

# JDK网络模块的不足

  1. 功能分散:JDK的网络功能分散在多个包中,如java.net、java.io、javax.net等,使用不够集中
  2. API复杂:某些操作API设计较为复杂,需要多次调用或转换
  3. 缺少常用功能:缺少IP地址验证、端口检测、MAC地址获取等常用功能
  4. 异常处理复杂:网络操作的异常处理较为复杂,需要编写大量的try-catch代码
  5. 缺少便捷方法:缺少一些常用的便捷方法,如获取本地IP、检测端口是否可用等

# Hutool网络模块的优势

  1. 功能集中:将所有网络相关功能集中在几个核心工具类中,使用方便
  2. API简洁:提供简洁易用的API,减少代码量
  3. 功能丰富:提供了JDK没有的多种功能,如IP地址验证、端口检测、MAC地址获取等
  4. 异常处理简化:简化了网络操作的异常处理,提供了更友好的异常信息
  5. 便捷方法丰富:提供了大量便捷方法,如获取本地IP、检测端口是否可用等
  6. 类型安全:提供了类型安全的方法,避免类型转换错误

# 核心类结构

类名 主要功能
NetUtil 网络工具类,提供端口检测、网络连接、本地IP获取等功能
Ipv4Util IPv4地址工具类,提供IPv4地址的解析、转换、验证等功能
Ipv6Util IPv6地址工具类,提供IPv6地址的解析、转换、验证等功能
Ipv4Pool IPv4地址池,用于管理IPv4地址
MacAddressUtil MAC地址工具类,提供MAC地址的获取、格式化等功能
LocalPortGenerator 本地端口生成器,用于生成可用的本地端口
ProxySocketFactory 代理Socket工厂,用于创建代理Socket连接
UserPassAuthenticator 用户密码认证器,用于代理认证

# 模块使用场景

  • 网络诊断:检测端口是否可用、网络是否连通等
  • IP地址管理:IP地址的解析、转换、验证等
  • 网络连接:创建TCP/UDP连接、代理连接等
  • URL处理:URL的解析、构建、编码等
  • SSL通信:创建和管理SSL连接
  • MAC地址获取:获取本地或远程设备的MAC地址

# 快速开始

# IP地址处理

// 获取本地IP地址
String localIp = NetUtil.getLocalhostStr();
// 输出: 192.168.1.100

// 检测IP地址是否有效
boolean isValid = Ipv4Util.isValid("192.168.1.1");
// 输出: true

// IP地址转换为long
long ipLong = Ipv4Util.ipv4ToLong("192.168.1.1");
// 输出: 3232235777

// long转换为IP地址
String ip = Ipv4Util.longToIpv4(3232235777L);
// 输出: 192.168.1.1

# 端口检测

// 检测端口是否可用
boolean isPortAvailable = NetUtil.isUsableLocalPort(8080);
// 输出: true

// 检测远程主机端口是否开放
boolean isPortOpen = NetUtil.isOpen("www.baidu.com", 80);
// 输出: true

# URL处理

// URL编码
String encodedUrl = UrlUtil.encode("http://www.baidu.com?name=测试");
// 输出: http://www.baidu.com?name=%E6%B5%8B%E8%AF%95

// URL解码
String decodedUrl = UrlUtil.decode("http://www.baidu.com?name=%E6%B5%8B%E8%AF%95");
// 输出: http://www.baidu.com?name=测试

# MAC地址处理

// 获取本地MAC地址
List<String> macList = MacAddressUtil.getAllLocalMacs();
// 输出: [00:00:00:00:00:00]

// 格式化MAC地址
String formattedMac = MacAddressUtil.formatMac("00-00-00-00-00-00");
// 输出: 00:00:00:00:00:00

# 总结

网络模块是Hutool的核心模块之一,提供了丰富的网络相关功能。通过使用该模块,可以大大简化Java中的网络操作,提高开发效率。无论是简单的IP地址处理,还是复杂的网络连接管理,Hutool都能提供简洁高效的解决方案。

接下来,我们将详细介绍网络模块中的核心工具类,包括NetUtil、Ipv4Util、Ipv6Util等,帮助大家更好地理解和使用这些工具类。

BitStatusUtil
NetUtil

← BitStatusUtil NetUtil→

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