有没有办法 return 传出 TCP 连接?

Is there a way to return outgoing TCP connections?

我不知道从哪里开始或使用什么,所以任何建议都有帮助。更具体地说,python 是否可以读取 TCPView 和 return 它所看到的内容?

我认为 Window 的 netstat 上的 piggy-backing 可能是最简单的解决方案:

from subprocess import run

def get_tcp_conns():
    result = run(["netstat", "-p", "TCP"], capture_output=True)
    return result.stdout

尽管这种确切方式的主要问题是 netstat 挂起一段时间,因此实际获得输出可能需要一段时间(比如一分钟 +)。

this answer 中汲取灵感,您也可以这样做来获得实时输出:

from subprocess import Popen, PIPE
import sys

def get_tcp_conns():
    process = Popen(["netstat", "-p", "TCP"], stdout=PIPE)
    for line in iter(process.stdout.readline, b''):
        print(line)  # Do whatever here

然后在获取每一行(连接)之后,您需要进行一些手动解析以提取数据。

我会展示示例输出,但这可能很敏感。