可以使用以下代码示例将T
CP
dump文本重定向到文件并生成二进制文件:
import paramiko
import time
# SSH连接参数
hostname = "example.com"
port = 22
username = "username"
password = "password"
command = "sudo tcpdump -i eth0 -w -"
# 生成的文件名
filename = "tcpdump.bin"
# 建立SSH连接
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname, port=port, username=username, password=password)
# 执行命令并将stdout重定向到文件
stdin, stdout, stderr = ssh.exec_command(command)
with open(filename, 'wb') as f:
# 读取stdout并写入文件
for line in stdout:
f.write(line)
ssh.close()
# 输出结果
print(f"TCP dump结果已保存到文件:{filename}")
这个例子中使用了paramiko库来建立SSH连接和执行命令。
command变量包含一个TCP dump命令,其中-w参数指定将输出写入文件,以便我们可以捕获到TCP dump结果。
filename变量指定文件名,用于保存TCP dump结果。
打开文件并将stdout(即TCP dump结果)写入文件。
关闭SSH连接并输出结果。
TCP dump命令需要特权(sudo)来运行。
在这个例子中,我们将TCP dump结果保存为二进制文件。如果您需要将结果保存为文本文件,可以在open()语句中使用't'模式。