1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Golang】ローカルのIPアドレスを取得する【複数NIC対応】

Posted at

Go 言語(以下 Golang)で作成したアプリを実行しているマシンのローカル IP アドレスが知りたい

複数の NIC(ネットワークカード)がある場合でも、外部からアクセス可能な方の IP アドレスが知りたい。

「"golang" ローカルのIPアドレスを取得する」でググっても、タイトルからわかるドンピシャの記事がなかったので、自分のググラビリティとして。

TL; DR (今北産業)

import "net"

// GetOutboundIP returns the outbound IP address of this machine.
func GetOutboundIP() (string, error) {
	// net.Dial で一度外部にアクセスして、使用したネットワークカードの
	// 情報を取得する。アクセス先は、存在する IP アドレスであれば
	// 8.8.8.8 でなくても構わない。
	conn, err := net.Dial("udp", "8.8.8.8:80")
	if err != nil {
		return "", err
	}

	defer conn.Close()

	// 使用しているネットワークカードのローカル IP を取得
	localAddr := conn.LocalAddr().(*net.UDPAddr)

	return localAddr.IP.String(), nil
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?