Python 有没有办法返回传出的TCP连接?
我不知道从哪里开始,也不知道该做什么,所以任何建议都会有所帮助。更具体地说,python是否可以读取TCPView并返回它所看到的内容?我认为借助Windows的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
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。您可以通过
子流程运行它。