ポート上で実行されているプロセスを特定する方法


  1. ターミナルを使用する方法:

    • ターミナルを開きます。
    • lsof -i :ポート番号 コマンドを入力して実行します。例えば、ポート番号が80の場合は、lsof -i :80 と入力します。
    • 実行結果には、ポート番号、プロセスID、プロセス名などが表示されます。
  2. netstat コマンドを使用する方法:

    • ターミナルを開きます。
    • netstat -tuln | grep ポート番号 コマンドを入力して実行します。例えば、ポート番号が80の場合は、netstat -tuln | grep 80 と入力します。
    • 実行結果には、ポート番号、プロトコル、プロセスID、プロセス名などが表示されます。
  3. Pythonを使用する方法:

    • Pythonの psutil モジュールを使用します。まず、psutil モジュールをインストールします。
    • 以下のコード例を使用して、ポート番号を指定して実行中のプロセスを特定します。
import psutil
def get_process_name(port):
    for conn in psutil.net_connections():
        if conn.laddr.port == port and conn.status == 'ESTABLISHED':
            return psutil.Process(conn.pid).name()
port_number = 80  # 特定したいポート番号を指定してください
process_name = get_process_name(port_number)
print(f"The process running on port {port_number} is: {process_name}")

上記のコードでは、psutil.net_connections() で取得した接続情報をループして、指定したポート番号と状態が 'ESTABLISHED' (確立済み) の場合に、プロセス名を取得しています。