[解決済み] Go でローカル IP アドレスを取得するにはどうしたらいいですか?
2023-05-19 14:54:06
質問
コンピュータのIPアドレスを取得したい。以下のコードを使用しましたが、返されるのは
127.0.0.1
.
というように、IPアドレスを取得したい。
10.32.10.111
のようなIPアドレスを取得したいのですが、ループバックアドレスではありません。
name, err := os.Hostname()
if err != nil {
fmt.Printf("Oops: %v\n", err)
return
}
addrs, err := net.LookupHost(name)
if err != nil {
fmt.Printf("Oops: %v\n", err)
return
}
for _, a := range addrs {
fmt.Println(a)
}
どのように解決するのですか?
すべてのネットワーク インターフェースをループする必要があります。
ifaces, err := net.Interfaces()
// handle err
for _, i := range ifaces {
addrs, err := i.Addrs()
// handle err
for _, addr := range addrs {
var ip net.IP
switch v := addr.(type) {
case *net.IPNet:
ip = v.IP
case *net.IPAddr:
ip = v.IP
}
// process IP address
}
}
遊ぶ (util/helper.goから引用)
関連
-
[解決済み] Goでマップにキーが含まれているかどうかを確認するには?
-
[解決済み] goで文字列の連結を効率的に行う方法
-
[解決済み] Goでスライスを逆に反復処理する方法はありますか?
-
[解決済み] Go で子プロセスの標準出力パイプをリダイレクトする
-
[解決済み] 構造体の値をマップの値として設定すると、"cannot assign" エラーが発生するのはなぜですか?重複
-
[解決済み] golangでISO 8601の時刻を変換するには?
-
[解決済み] go get で「インポートパスが認識されない」。
-
[解決済み] 構造体のプロパティに名前でアクセスする
-
[解決済み] ソースツリー全体に対するgo fmt
-
[解決済み] Go で / に異なるメソッドの http リクエストを処理するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] time.Sleepを使わずにすべてのゴルーチンが終了するのを待つには?
-
[解決済み] Goでスライスを逆に反復処理する方法はありますか?
-
[解決済み] Pod内のコンテナからPod自身のIPアドレスを知るには?
-
[解決済み] ゴルーチンのスタックトレースをダンプするには?
-
[解決済み] あるプログラムの依存ファイルをすべて取得する方法
-
[解決済み] Go で子プロセスの標準出力パイプをリダイレクトする
-
[解決済み] bytes.Buffer does not implement io.Writer" というエラーメッセージが表示される。
-
[解決済み] 文字列を小文字に変換する方法を教えてください。
-
[解決済み] Go プログラムに渡されたコマンドライン引数にアクセスするには?
-
[解決済み] Goにはラムダ式というものがあるのですか?