98. 检测合法IP地址
分享给更多人
中等难度 -通过 / -执行
IPv4
IPv4 地址包含用点隔开的4个数字(octet),每个数字的范围从0到255,比如1.22.33.255
。 总共有32 bit,所以可以有最多2^32 = 4,294,967,296 个不同的IPv4 地址。
IPv4不支持开头的0,比如 01.01.01.01
是无效的。
IPv6
IPv6 地址 有 128 个bit ,区隔为8个组(叫做'hexadectet' 或者 'hextet',还没有官方确定),每个组有16个bit,所以可以用4位16进制数来表示,比如2001:0db8:85a3:0000:0000:8a2e:0370:7334
。
注意IPv6允许打头的0存在。
此外还有一些其他的合法的 IPv6 地址格式,比如Zero compression等,不过不是本体的考虑范围。
任务
你需要实现一个函数,来判定输入的字符串是否是合法的IPv4或者IPv6地址。
追问
你可以通过正则表达式解决这个问题吗?