有没有办法 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
然后在获取每一行(连接)之后,您需要进行一些手动解析以提取数据。
我会展示示例输出,但这可能很敏感。
我不知道从哪里开始或使用什么,所以任何建议都有帮助。更具体地说,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
然后在获取每一行(连接)之后,您需要进行一些手动解析以提取数据。
我会展示示例输出,但这可能很敏感。