GolangでローカルIPアドレスを取得する方法

Golangではnetパッケージを利用することで簡単にローカルIPアドレスを取得できます。

net.InterfaceAddrs メソッドを使用する

簡単なサンプルコードは次のとおりです。

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())
			}
		}
	}
}

ネット・ダイヤル方式で

udp を使用すると、配信されているかどうかを気にする必要はなく、対応する ip とポートが正しいだけで、ip アドレスを取得できます。簡単なサンプルコードは次のとおりです。

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)
}

おすすめ

転載: blog.csdn.net/luduoyuan/article/details/131927822