zoukankan      html  css  js  c++  java
  • Go语言:判断IP是否合法是IPv4还是IPv6

    原文链接:https://www.codenong.com/cs106100823/

    package main
    
    import (
        "fmt"
        "net"
    )
    
    // 0: invalid ip
    // 4: IPv4
    // 6: IPv6
    func ParseIP(s string) (net.IP, int) {
        ip := net.ParseIP(s)
        if ip == nil {
            return nil, 0
        }
        for i := 0; i < len(s); i++ {
            switch s[i] {
            case '.':
                return ip, 4
            case ':':
                return ip, 6
            }
        }
        return nil, 0
    }
    
    func test(s string) {
        ip, n := ParseIP(s)
        fmt.Printf("%v %v
    ", n, ip)
    }
    func main() {
        test("127.0.0.1")
        test("::127.0.0.1")
        test("2001:0:53ab:0:0:0:0:0")
        test("2001:0:c38c:ffff:ffff:0000:0000:ffff")
        test("2001:0:c38c:ffff:ffff::")
        test("327.0.0.1")
        test("2001:0:c38c:ffff:ffff:ffff:ffff:ffff1")
    }
    

      输出:

    4 127.0.0.1
    6 ::7f00:1
    6 2001:0:53ab::
    6 2001:0:c38c:ffff:ffff::ffff
    6 2001:0:c38c:ffff:ffff::
    0 <nil>
    0 <nil>
    

      

  • 相关阅读:
    hadoop day 5
    SSM前言——相关设计模式
    多线程技术点二
    其他对象
    集合拾遗
    入职技术准备
    File类相关操作
    IO流技术
    多线程技术点
    第二章
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/14116986.html
Copyright © 2011-2022 走看看