Goで、CIDRブロック内に指定IPが含まれているか判定するスニペット
string型のcidr
, ip
を渡して、含まれているかをboolで返す。
cidr.go
package cidr
import (
"log"
"net"
)
// isIncluededInCIDR reports whether the cidr includes the given ip.
func isIncluededInCIDR(cidr, ip string) bool {
_, cidrNet, err := net.ParseCIDR(cidr)
if err != nil {
log.Fatal(err)
return false
}
targetIP := net.ParseIP(ip)
return cidrNet.Contains(targetIP)
}