【Golang】ローカルのIPアドレスを取得する【複数NIC対応】
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
}
- オンラインで動作をみる @ Go Playground
- 参考文献:
- コメント | "How do I get the local IP address in Go?" @ StackOverflow
Author And Source
この問題について(【Golang】ローカルのIPアドレスを取得する【複数NIC対応】), 我々は、より多くの情報をここで見つけました https://qiita.com/KEINOS/items/60c3bdbf2b0a28d961bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .