网络工具 - NetUtil
# 网络工具 - NetUtil
简介
NetUtil
是 Hutool 提供的网络工具类,主要用于处理与网络相关的常见操作,包括 IP 地址转换、端口检测、内外网 IP 判断、URL 转换等。该工具类能够简化日常开发中与网络相关的操作,使代码更加简洁和高效。\
# 1. 使用场景
- IP 地址转换:在需要将 IP 地址和 long 类型值相互转换时,使用
NetUtil
提供的方法可以方便实现。 - 端口检测:在进行网络服务的端口分配时,使用
NetUtil
来判断端口是否可用。 - 内外网 IP 判断:在需要区分内网和公网 IP 时,
NetUtil
提供了便捷的方法进行判断。 - URL 处理:在处理相对 URL 和绝对 URL 转换时,可以使用
NetUtil
进行转换。
# 2. 主要方法与示例
# 2.1 longToIpv4
- 将 long 转换为 IPv4 地址
该方法用于将 long 类型的数字转换为 IPv4 地址。
示例:将 long 转换为 IPv4 地址
import cn.hutool.core.net.NetUtil;
public class NetUtilExample {
public static void main(String[] args) {
long ipLong = 2130706433L;
// 将 long 转换为 IPv4 地址
String ipAddress = NetUtil.longToIpv4(ipLong);
System.out.println("IPv4 地址: " + ipAddress); // 输出: 127.0.0.1
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 方法签名:
public static String longToIpv4(long longIp)
- 参数说明:
longIp
:需要转换为 IPv4 地址的 long 值。
- 作用:在需要将数字转换为 IP 地址的场景中使用,适用于处理网络数据时的 IP 地址转换。
# 2.2 ipv4ToLong
- 将 IPv4 地址转换为 long
该方法用于将 IPv4 地址转换为 long 类型的数字,便于存储或计算。
示例:将 IPv4 地址转换为 long
import cn.hutool.core.net.NetUtil;
public class NetUtilExample {
public static void main(String[] args) {
String ipAddress = "127.0.0.1";
// 将 IPv4 地址转换为 long
long ipLong = NetUtil.ipv4ToLong(ipAddress);
System.out.println("IPv4 对应的 long 值: " + ipLong); // 输出: 2130706433
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 方法签名:
public static long ipv4ToLong(String ipv4)
- 参数说明:
ipv4
:需要转换的 IPv4 地址字符串。
- 作用:在需要将 IP 地址转换为数字形式存储或进行计算时使用,适用于处理网络数据、存储 IP 地址等场景。
# 2.3 isUsableLocalPort
- 检测本地端口可用性
该方法用于检测本地某个端口是否可用。
示例:检测本地端口是否可用
import cn.hutool.core.net.NetUtil;
public class NetUtilExample {
public static void main(String[] args) {
int port = 6379;
// 检测本地端口是否可用
boolean isUsable = NetUtil.isUsableLocalPort(port);
System.out.println("端口 " + port + " 是否可用: " + isUsable);
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 方法签名:
public static boolean isUsableLocalPort(int port)
- 参数说明:
port
:需要检测的本地端口号。
- 作用:在启动网络服务时,需要检测端口是否被占用或可用时使用,适用于网络服务开发、端口分配等场景。
# 2.4 isValidPort
- 判断是否为有效端口
该方法用于判断一个端口号是否在有效范围内。
示例:判断端口号是否有效
import cn.hutool.core.net.NetUtil;
public class NetUtilExample {
public static void main(String[] args) {
int port = 8080;
// 判断端口号是否有效
boolean isValid = NetUtil.isValidPort(port);
System.out.println("端口 " + port + " 是否为有效端口: " + isValid);
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 方法签名:
public static boolean isValidPort(int port)
- 参数说明:
port
:需要判断的端口号。
- 作用:在需要判断端口号是否在有效范围(0-65535)内时使用,适用于网络配置、端口验证等场景。
# 2.5 isInnerIP
- 判断是否为内网 IP
该方法用于判断给定的 IP 地址是否为内网 IP。
示例:判断 IP 地址是否为内网 IP
import cn.hutool.core.net.NetUtil;
public class NetUtilExample {
public static void main(String[] args) {
String ipAddress = "192.168.1.1";
// 判断是否为内网 IP
boolean isInner = NetUtil.isInnerIP(ipAddress);
System.out.println("IP 地址 " + ipAddress + " 是否为内网 IP: " + isInner);
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 方法签名:
public static boolean isInnerIP(String ipAddress)
- 参数说明:
ipAddress
:需要判断的 IP 地址。
- 作用:在需要区分内网和外网 IP 时使用,适用于网络配置、IP 管理等场景。
# 2.6 hideIpPart
- 隐藏 IP 地址的部分信息
该方法用于隐藏 IP 地址的部分信息,以 *
代替,常用于保护隐私。
示例:隐藏 IP 地址的部分信息
import cn.hutool.core.net.NetUtil;
public class NetUtilExample {
public static void main(String[] args) {
String ipAddress = "192.168.1.100";
// 隐藏 IP 地址的部分信息
String hiddenIp = NetUtil.hideIpPart(ipAddress);
System.out.println("隐藏后的 IP 地址: " + hiddenIp); // 输出: 192.168.1.*
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 方法签名:
public static String hideIpPart(String ip)
- 参数说明:
ip
:需要隐藏部分信息的 IP 地址。
- 作用:在展示 IP 地址时需要保护部分信息以保证隐私时使用,适用于日志输出、用户信息展示等场景。
# 3. 实际应用场景
- 网络服务配置:在配置或启动网络服务时,检测端口是否可用,判断 IP 地址是否有效。
- 安全防护:在处理用户 IP 地址时,通过隐藏部分信息保证隐私,防止敏感信息泄露。
- 网络数据处理:在处理网络数据时,进行 IP 地址的转换和判断,简化网络编程。
# 4. 注意事项
- IP 地址格式需要符合标准的 IPv4 地址格式,否则可能导致转换失败或异常。
- 检测端口可用性时,仅判断本地端口状态,无法检测远程端口。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08