请知悉:本文最近一次更新为 5年 前,文中内容可能已经过时。

有时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


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《Golang正则表达式判断IPv4地址是否合法》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌