wangjq19920210

原文链接: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", 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>

  

 

分类:

技术点:

相关文章:

  • 2021-12-26
  • 2021-11-15
  • 2021-08-19
  • 2021-11-28
  • 2022-12-23
  • 2023-03-18
  • 2021-12-26
猜你喜欢
  • 2021-12-26
  • 2021-12-26
  • 2022-12-23
  • 2021-12-26
  • 2021-12-26
  • 2021-12-26
  • 2021-12-26
相关资源
相似解决方案