Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法返回传出的TCP连接?_Python_Tcp - Fatal编程技术网

Python 有没有办法返回传出的TCP连接?

Python 有没有办法返回传出的TCP连接?,python,tcp,Python,Tcp,我不知道从哪里开始,也不知道该做什么,所以任何建议都会有所帮助。更具体地说,python是否可以读取TCPView并返回它所看到的内容?我认为借助Windows的netstat可能是最简单的解决方案: from subprocess import run def get_tcp_conns(): result = run(["netstat", "-p", "TCP"], capture_output=True) re

我不知道从哪里开始,也不知道该做什么,所以任何建议都会有所帮助。更具体地说,python是否可以读取TCPView并返回它所看到的内容?

我认为借助Windows的
netstat
可能是最简单的解决方案:

from subprocess import run

def get_tcp_conns():
    result = run(["netstat", "-p", "TCP"], capture_output=True)
    return result.stdout
然而,这种精确方式的主要问题是
netstat
会挂起一段时间,因此实际获取输出可能需要一段时间(比如一分钟)

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

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
然后在获得每一行(连接)之后,您需要进行一些手动解析来提取数据


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

您是在问如何用Python编写数据包嗅探器吗?使用我假设您指的是windows上的tcpview.exe。您可以通过
子流程运行它。