Здравствуйте, я пишу программу, и мне нужно извлечь адрес IPv4. Я нашел кое-что в Интернете с помощью библиотеки net, но в нотации sla sh указан полный IP-адрес с IPv6. Поэтому я подумал, что могу просто преобразовать его в строку и разобрать его каким-то образом, и я нашел в Интернете другой фрагмент кода для того, чтобы взять строку, преобразовать ее в руну и получить только то, что вы хотели. Но я не могу преобразовать net .Addrs в строку или руну, чтобы сделать это.
Мой код, который у меня сейчас есть,
package main
import (
"fmt"
"net"
)
func main() {
ifname := "tun0"
iface, err := net.InterfaceByName(ifname)
if err != nil {
panic(fmt.Sprintf("Could not get interface: %s", err))
}
addrs, err := iface.Addrs()
if err != nil {
panic(fmt.Sprintf("Could not get addresses from interface: %s", err))
}
fmt.Printf("%s\n", addrs)
a := []rune(addrs)
addrs = string(a[1:11])
fmt.Printf("%s\n", addrs)
}
Вывод моей программы пока следует:
[10.10.14.46/23 dead:beef:2::102c/64 fe80::fb00:ecf:1728:b7a5/64]