以编程方式查找为给定 PID 打开的端口

Finding ports opened for a given PID programmatically

在 Linux 中,给定一个 PID,有没有办法找到它以编程方式打开的端口列表(最好是 Python)? lsof/netstat 等实用程序不可用。

是这样的吗?注意:需要 运行 w/ sudo-rights,否则您无法访问 PIDs.

import psutil
tmp = psutil.net_connections()
for i in tmp:
    if i.pid==30264:
        print( i.laddr[1] )

P.S.: 你不清楚你是指本地端口还是远程端口;相应地将 laddr 调整为 raddr