Cómo obtener la dirección IP local en Golang

En Golang, usando el paquete de red puede obtener fácilmente la dirección IP local.

Con el método net.InterfaceAddrs

Un código de muestra simple es el siguiente:

package main

import (
	"fmt"
	"net"
)

func main() {
	addrList, err := net.InterfaceAddrs()
	if err != nil {
		panic(err)
	}
	for _, address := range addrList {
		if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
			if ipNet.IP.To4() != nil {
				fmt.Println(ipNet.IP.String())
			}
		}
	}
}

Con el método net.Dial

El uso de udp no necesita prestar atención a si se entrega, solo necesita que la ip y el puerto correspondientes sean correctos, y luego se puede obtener la dirección IP. Un código de muestra simple es el siguiente:

package main

import (
	"fmt"
	"net"
	"strings"
)

func main() {
	conn, err := net.Dial("udp", "8.8.8.8:53")
	if err != nil {
		panic(err)
	}
	addr := conn.LocalAddr().(*net.UDPAddr)
	ip := strings.Split(addr.String(), ":")[0]
	fmt.Println(ip)
}

Supongo que te gusta

Origin blog.csdn.net/luduoyuan/article/details/131927822
Recomendado
Clasificación