gpt4 book ai didi

java - 如何检查字符串是 IPv4/IPv6 还是域名? ( java )

转载 作者:行者123 更新时间:2023-12-05 02:08:24 33 4
gpt4 key购买 nike

如何检查字符串是否匹配 IPv4、IPv6 地址或域名,如 www.google.com

我为 IPv4 找到了这个: Validating IPv4 string in Java同样的系统适用于 IPv6,但我如何检查域名?

编辑:澄清一下:我想检查一个字符串是否是有效的服务器地址。有效仅表示格式正确。连接将在程序的不同点进行测试。

最佳答案

虽然确实有很多极端情况,但这很简单 The IPAddress Java library .我建议不要使用正则表达式,有太多的变化。免责声明:我是 IPAddress 库的项目经理。

示例代码如下:

check("1.2.3.4");
check("1.2.a.4");
check("::1");
check("[::1]");
check("1.2.?.4");

static void check(String hostStr) {
HostName host = new HostName(hostStr);
try {
host.validate();
if(host.isAddress()) {
IPAddress addr = host.asAddress();
System.out.println(addr.getIPVersion() + " address: " + addr);
} else {
System.out.println("host name: " + host);
}
} catch(HostNameException e) {
System.out.println(e.getMessage());
}
}

输出:

IPv4 address: 1.2.3.4
host name: 1.2.a.4
IPv6 address: ::1
IPv6 address: ::1
1.2.?.4 Host error: invalid character at index 4

关于java - 如何检查字符串是 IPv4/IPv6 还是域名? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61001216/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com