有时Golang是需要判断IPv4的IP是否合法的,搜了下,用以下方式是可以实现判定的。
1.对正则表达式进行编译,以得到一个优化的Regexp结构体,然后再用优化后的对象进行匹配:
package main
import "regexp"
import "fmt"
func main() {
str := "1.2.3.4"
ipReg := `^((0|[1-9]\d |1\d\d|2[0-4]\d|25[0-5])\.){3}(0|[1-9]\d |1\d\d|2[0-4]\d|25[0-5])$`
r, _ := regexp.Compile(ipReg)
match := r.MatchString(str)
if match {
fmt.Printf("%s is a legal ipv4 address\n", str)
} else {
fmt.Printf("%s is not a legal ipv4 address\n", str)
}
}
2.使用net包里面的ParseIP方法:
package main
import "net"
import "fmt"
func main() {
str := "1.2.3.4"
address := net.ParseIP(str)
if address != nil {
fmt.Printf("%s is a legal ipv4 address\n", str)
} else {
fmt.Printf("%s is not a legal ipv4 address\n", str)
}
}
建议:net包中的ParseIP方法在判断IPv4地址的合法性上具有压倒性的优势。
以上代码完整摘录自:https://blog.csdn.net/choumin/article/details/90177007
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。