python 查看端口占用的进程的 程序路径,支持java 程序和exe程序

文章介绍了如何使用Python的psutil库获取占用特定端口(如8080)的进程信息,包括进程ID、名称、执行文件路径和启动命令行,特别指出处理Java程序时可能需要解析cmdline以确定具体应用。
摘要由CSDN通过智能技术生成

在Python中查看端口占用的进程以及其对应的程序路径(包括Java程序和EXE程序),依然可以使用psutil库来完成。然而,需要注意的是,Java程序通常是以JVM的形式运行的,其主进程可能只是JVM本身,而非具体的Java应用。因此,当你看到的是Java虚拟机(如java.exejavaw.exe)时,可能需要额外的信息来确定实际运行的Java应用。

以下是一个通用的Python脚本,用于查找占用特定端口的进程及其路径(无论是Python、Java、EXE或其他任何类型的进程):

 

python

import psutil
import socket

def get_process_info_by_port(port):
    try:
        # 获取所有连接信息
        for proc in psutil.process_iter(['pid', 'name', 'exe', 'cmdline']):
            # 获取进程的所有网络连接
            connections = proc.connections(kind='inet')
            for conn in connections:
                # 查找监听指定端口的连接
                if conn.status == 'LISTEN' and conn.laddr.port == port:
                    process_info = {
                        'pid': proc.pid,
                        'name': proc.name(),
                        'exe': proc.exe(),
                        'cmdline': ' '.join(proc.cmdline()) if proc.cmdline() else None
                    }
                    return process_info
    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
        pass
    return None

# 查找占用特定端口(如8080)的进程信息
process_info = get_process_info_by_port(8080)
if process_info:
    print("PID: ", process_info['pid'])
    print("Process Name: ", process_info['name'])
    print("Executable Path: ", process_info['exe'])
    print("Command Line: ", process_info['cmdline'])
else:
    print("No process found listening on the specified port.")

请确保已经安装了psutil库。通过cmdline属性,有时可以得到更详细的启动命令行参数,这对于识别运行的Java应用可能更有帮助,因为它可能包含了.jar文件的路径或者其他关于应用程序的具体信息。但对于某些封装良好的Java应用,可能仍需结合其它工具或方式进一步分析。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值