Получение локального туннеля IPv4-адреса в GO - PullRequest
0 голосов
/ 02 мая 2020

Здравствуйте, я пишу программу, и мне нужно извлечь адрес 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...