Go言語でプロセスのポートを取得する方法は何ですか?

Go言語では、netパッケージのListen()関数を使用してプロセスがリッスンしているポートを取得することができます。以下に示すのはサンプルコードです:

package main

import (
	"fmt"
	"net"
)

func main() {
	listener, err := net.Listen("tcp", "127.0.0.1:0")
	if err != nil {
		fmt.Println("Failed to listen:", err)
		return
	}
	defer listener.Close()

	address := listener.Addr().(*net.TCPAddr)
	fmt.Println("Listening on port", address.Port)
}

コード上で、127.0.0.1:0をパラメーターとして渡すことで、オペレーティングシステムが私たちのために空いているポートを選択することができます。次に、listener.Addr()メソッドを使って、実際にリッスンされているアドレスを取得し、address.Portを使ってリッスンしているポート番号を取得できます。

bannerAds