Эффективные методы проверки IP-адреса в Go (Golang)

Вот несколько методов в 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")
    }
}

Обратите внимание, что метод «говалидатора» требует установки сторонней библиотеки.