【发布时间】:2013-07-12 18:56:34
【问题描述】:
我有一个子例程,需要根据地址是 IPV4 还是 IPV6 执行 2 个不同的操作。如果我只是模式匹配 ':' 来确定地址是否是 IPV6 ?
有什么例外吗?
例如:1.1.1.1 没有冒号 1::1 有:
上述方法也适用于子网: 例如:1.2.3.4/24 2002::1.2.3.4/120
我不想对 IPV4 或 IPV6 使用庞大的正则表达式模式匹配。 谢谢。
【问题讨论】:
-
120.0.0.1:8000呢? -
匹配点感觉更安全
-
@JanDvorak 如果您匹配正确的网址。但不适用于 IP 地址。
-
@JanDvorak, ::FFFF:192.168.1.1 是有效的 IPv6 地址。