golang 检查ip地址


func validIPAddress(IP string) string {
    if checkIPv4(IP) {
        return "IPv4"
    }
    if checkIPv6(IP) {
        return "IPv6"
    }
    return "Neither"
}

func checkIPv4(IP string) bool {
   // 字符串这样切割 strs
:= strings.Split(IP, ".") if len(strs) != 4 { return false } for _, s := range strs { if len(s) == 0 || (len(s) > 1 && s[0] == '0') { return false }
// 直接访问字符串的值
if s[0] < '0' || s[0] > '9' { return false }
// 字符串转数字 n
, err := strconv.Atoi(s) if err != nil { return false } if n < 0 || n > 255 { return false } } return true } func checkIPv6(IP string) bool { strs := strings.Split(IP, ":") if len(strs) != 8 { return false } for _, s := range strs { if len(s) <= 0 || len(s) > 4 { return false } for i := 0; i < len(s); i++ { if s[i] >= '0' && s[i] <= '9' { continue } if s[i] >= 'A' && s[i] <= 'F' { continue } if s[i] >= 'a' && s[i] <= 'f' { continue } return false } } return true }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM