Вот несколько методов в Go (Golang) для проверки IP-адреса:
Метод 1: использование сетевого пакета
package main
import (
"fmt"
"net"
)
func isValidIP(ip string) bool {
if parsedIP := net.ParseIP(ip); parsedIP != nil {
return true
}
return false
}
func main() {
ip := "192.168.0.1"
if isValidIP(ip) {
fmt.Println("Valid IP")
} else {
fmt.Println("Invalid IP")
}
}
Метод 2. Использование регулярных выражений
package main
import (
"fmt"
"regexp"
)
func isValidIP(ip string) bool {
ipv4Pattern := `^(\d{1,3}\.){3}\d{1,3}$`
ipv6Pattern := `^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$`
matchIPv4, _ := regexp.MatchString(ipv4Pattern, ip)
matchIPv6, _ := regexp.MatchString(ipv6Pattern, ip)
return matchIPv4 || matchIPv6
}
func main() {
ip := "192.168.0.1"
if isValidIP(ip) {
fmt.Println("Valid IP")
} else {
fmt.Println("Invalid IP")
}
}
Метод 3. Использование сторонней библиотеки «govalidator».
Чтобы использовать этот метод, вам необходимо установить пакет «govalidator», используя go get github.com/asaskevich/govalidator.
package main
import (
"fmt"
"github.com/asaskevich/govalidator"
)
func isValidIP(ip string) bool {
return govalidator.IsIP(ip)
}
func main() {
ip := "192.168.0.1"
if isValidIP(ip) {
fmt.Println("Valid IP")
} else {
fmt.Println("Invalid IP")
}
}
Обратите внимание, что метод «говалидатора» требует установки сторонней библиотеки.