查找程序使用 python 的端口

Find ports a program uses with python

我想找到 'plugin-container.exe' 使用的端口,以便我可以监视哪些 IP 地址与该程序交互,问题是有两个 'plugin-container.exe'。 我使用 Firefox 开发版。

我已经关闭了监控部分,但我需要以某种方式自动获取端口。据我所知,获取它们意味着知道进程正在使用什么 PID,两个进程 = 2 个 PID。 ;_;

我可以同时添加它们,但是我的浏览器有大量流量,当我手动添加所有 4 个端口时它会杀死我的程序。

现在我正在使用它来获取列表,re.findall 来过滤列表中的 'plugin-container.exe',然后我使用 psutil 来查找哪些端口。

我觉得有一种更简单的方法可以做到这一切。

import os, sys, win32api, re, psutil

tasklistrl = os.popen("tasklist").readlines()

tasklistr = os.popen("tasklist").read()

如果您想要一种使用 psutil 通过可执行文件名称查找进程的好方法,那么您应该使用 process_iter and cmdline:

my_processes = [x for x in psutil.process_iter() if os.path.split(x.cmdline()[0])[1] == 'python']

(用你想要的可执行文件名替换'python'

我明白了。 还有另一个端口,但它们是连续的。 嗯

   process_name = "plugin-container.exe" 
    for proc in psutil.process_iter(): 
        process = psutil.Process(proc.pid)
        pname = process.name()
        #print pname
        if pname == process_name: 
            print(proc.pid)
            d = psutil.Process(int(proc.pid))
            print(d.name())
            print(d.memory_info())
            dec = input("Use this one?")
            if dec in ["yes","y","yep"]:
                con = d.connections(kind='udp4')
                break
    for connection in con:
                yourmom = connection.laddr[1]
    port1 = yourmom
    port2 = port1 + 1