Как получить сетевой адрес в Golang: различные методы с примерами кода

Чтобы получить сетевой адрес в Go (Golang), вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот несколько подходов и примеры кода:

Метод 1: использование сетевого пакета

package main
import (
    "fmt"
    "net"
)
func main() {
    addrs, err := net.InterfaceAddrs()
    if err != nil {
        fmt.Println(err)
        return
    }
    for _, addr := range addrs {
        ipNet, ok := addr.(*net.IPNet)
        if ok && !ipNet.IP.IsLoopback() {
            if ipNet.IP.To4() != nil {
                fmt.Println("Network Address:", ipNet.IP.Mask(ipNet.IP.DefaultMask()))
            }
        }
    }
}

Метод 2: использование функции net.ParseCIDR

package main
import (
    "fmt"
    "net"
)
func main() {
    ip := net.ParseIP("192.168.0.1")
    mask := net.IPMask(net.ParseIP("255.255.255.0").To4())
    network := ip.Mask(mask)
    fmt.Println("Network Address:", network)
}

Метод 3. Извлечение сетевого адреса по заданному IP-адресу и маске подсети

package main
import (
    "fmt"
    "net"
)
func main() {
    ip := net.ParseIP("192.168.0.1")
    mask := net.IPMask(net.ParseIP("255.255.255.0").To4())
    network := ip.Mask(mask)
    fmt.Println("Network Address:", network)
}

Эти методы демонстрируют разные способы получения сетевого адреса в Go. Не забудьте настроить IP-адрес и маску подсети в соответствии с конфигурацией вашей конкретной сети.