希望以4个字节发送一个ipv4地址,以16个字节发送一个ipv6地址-类似于inet_pton()
呢?
handleDescChange = text => {
if (!text) return;
this.setState({ projectDescription: text });
};
我知道https://play.golang.org/p/jn8t7zJzT5v -尽管对于IPV6地址来说看起来很复杂。
谢谢!
答案 0 :(得分:7)
net.ParseIP()
将采用IPv4或IPv6格式的字符串,并返回包含IP地址的net.IP
。
net.IP
是您需要馈送给大多数其他Go功能的工具,例如建立与主机的连接。
请注意,与大多数返回错误的Go函数不同,net.ParseIP()
仅在无法将字符串解析为IP地址时才返回nil
。
答案 1 :(得分:0)
您都可以使用net软件包: `
a := net.ParseIP("127.0.0.1")
fmt.Printf("%b %s", net.IP.To4(a))
` https://play.golang.org/p/KzqYpk9OBh8
或者,您可以拆分IP,然后使用strconv.Atoi()将每个值转换为整数,然后将每个整数转换为byte()
`
ipString := "127.0.0.1"
octets := strings.Split(ipString, ".")
octet0, _ := strconv.Atoi(octets[0])
octet1, _ := strconv.Atoi(octets[1])
octet2, _ := strconv.Atoi(octets[2])
octet3, _ := strconv.Atoi(octets[3])
b := [4]byte{byte(octet0),byte(octet1),byte(octet2),byte(octet3)}
fmt.Printf("%s has 4-byte representation of %b\n", ipString, b)