我正在寻找针对ipv4和ipv6 InetSocketAddress(即IP地址+端口号)的测试过的正则表达式。我不关心验证主机名。
可以使用两个正则表达式(一个用于ipv4,一个用于ipv6),也可以使用一个组合正则表达式。
有人有任何分享吗? 编辑 有关ip4格式信息,请参见here,有关ipv6格式信息,请参见here。然后,使用“:”添加端口号。 编辑2 要创建字符串表示形式,我将按如下方式进行:
可以使用两个正则表达式(一个用于ipv4,一个用于ipv6),也可以使用一个组合正则表达式。
有人有任何分享吗? 编辑 有关ip4格式信息,请参见here,有关ipv6格式信息,请参见here。然后,使用“:”添加端口号。 编辑2 要创建字符串表示形式,我将按如下方式进行:
byte[] tmp = { 10, 1, 0, 0 };
InetSocketAddress isa = new InetSocketAddress(
InetAddress.getByAddress(tmp), 443);
返回:
/10.1.0.0:443
new InetSocketAddress(InetAddress.getByName("10.1"), 443);
,.toString()
是/10.0.0.1:443
。如果您在.toString()
上运行正则表达式,例如,我认为您不必担心非规范化的IPv4地址,例如x.x
格式。这是在Windows上使用Java版本1.6.0_21-b07
。 - mpontillonew InetSocketAddress(InetAddress.getByName("fe80::1%22"), 443)
ÁöÑ.toString()
返回/fe80:0:0:0:0:0:0:1%22:443
„ÄÇ - mpontillo