Python查询占用端口进程 Windows

作为一名经验丰富的开发者,你经常需要查询占用端口的进程信息。在Windows系统中,我们可以使用Python来实现这个功能。下面是整个流程的步骤。

流程步骤

步骤 描述
步骤一 导入所需的模块
步骤二 获取所有的进程信息
步骤三 遍历进程信息,查找占用特定端口的进程
步骤四 打印出占用端口的进程信息

接下来,让我们一步步来完成这些步骤。

步骤一:导入所需的模块

首先,我们需要导入一些Python模块来帮助我们完成这个任务。我们将使用psutil模块来获取进程信息。

import psutil

步骤二:获取所有的进程信息

使用psutil模块的process_iter()函数可以获取所有的进程信息。我们将把这些信息存储在一个列表中。

processes = []
for proc in psutil.process_iter():
    processes.append(proc)

步骤三:遍历进程信息,查找占用特定端口的进程

接下来,我们需要遍历进程信息列表,查找占用特定端口的进程。我们将使用connections()函数来获取进程的网络连接信息,然后检查端口是否匹配。

port = 8000  # 替换为你要查询的端口号
for proc in processes:
    for conn in proc.connections():
        if conn.laddr.port == port and conn.status == "LISTEN":
            print(f"占用端口 {port} 的进程 ID 为:{proc.pid}")

在上面的代码中,我们定义了port变量,它表示你要查询的端口号。然后,我们遍历进程信息列表,并使用connections()函数获取进程的网络连接信息。我们检查连接的端口号是否与我们要查询的端口号匹配,并且状态为"LISTEN",如果匹配,我们将打印出该进程的进程ID。

步骤四:打印出占用端口的进程信息

最后,我们可以根据进程ID获取详细的进程信息,并将其打印出来。

for proc in processes:
    if proc.pid == pid:
        print(f"占用端口 {port} 的进程信息:")
        print(f"进程ID:{proc.pid}")
        print(f"进程名:{proc.name()}")
        print(f"命令行:{proc.cmdline()}")
        print(f"创建时间:{proc.create_time()}")
        print(f"进程状态:{proc.status()}")
        print(f"进程用户名:{proc.username()}")

在上面的代码中,我们遍历进程信息列表,根据进程ID获取进程详细信息,并将其打印出来。

使用以上的代码,你就可以实现Python查询占用端口进程的功能了。记得将端口号替换为你要查询的端口号。希望这篇文章对你有所帮助!