查找程序与python

时间:2015-11-27 05:09:31

标签: python windows networking port pid

我想找到' plugin-container.exe'使用的端口。所以我可以监控哪些IP地址与该程序交互,问题是有两个插件容器。 我使用Firefox Developer Edition。

我已经关闭了监控部分,但我需要自动获取端口的一些方法。从我所看到的,获取它们意味着知道该过程正在使用什么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()

2 个答案:

答案 0 :(得分:0)

如果您想要一种使用psutil按可执行文件名查找进程的好方法,那么您应该使用process_itercmdline

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

(用您想要的可执行名称替换'python'

答案 1 :(得分:0)

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

   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