Python3 网络编程4:SSH 与 FTP 网络编程
在 Python 中,我们可以使用 paramiko 进行 SSH 远程控制,使用 ftplib 进行 FTP 文件传输。
4.1 使用 paramiko 进行 SSH 远程操作
paramiko 是一个用于 SSH 连接的 Python 库,适用于远程服务器管理、执行命令和文件传输。
4.1.1 通过 SSH 连接远程服务器并执行命令
import paramiko
host = "192.168.1.100"
port = 22
username = "user"
password = "password"
# 创建 SSH 客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
client.connect(host, port, username, password)
stdin, stdout, stderr = client.exec_command("ls -l")
print(stdout.read().decode()) # 读取并打印命令输出
finally:
client.close()
4.1.2 通过 SSH 传输文件(SFTP)
import paramiko
host = "192.168.1.100"
port = 22
username = "user"
password = "password"
transport = paramiko.Transport((host, port))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put("local_file.txt", "/remote/path/file.txt") # 上传文件
sftp.get("/remote/path/file.txt", "downloaded_file.txt") # 下载文件
sftp.close()
transport.close()
4.2 使用 ftplib 进行 FTP 文件传输
ftplib 是 Python 内置的 FTP 传输库,可用于上传、下载和管理文件。
4.2.1 连接 FTP 服务器
from ftplib import FTP
ftp = FTP("ftp.example.com")
ftp.login("username", "password")
print(ftp.getwelcome()) # 输出 FTP 服务器欢迎信息
ftp.quit()
4.2.2 获取目录列表
ftp = FTP("ftp.example.com")
ftp.login("username", "password")
ftp.cwd("/") # 进入根目录
files = ftp.nlst() # 获取文件列表
print("服务器文件列表:", files)
ftp.quit()
4.2.3 上传文件
with open("local_file.txt", "rb") as file:
ftp.storbinary("STOR remote_file.txt", file)
4.2.4 下载文件
with open("downloaded_file.txt", "wb") as file:
ftp.retrbinary("RETR remote_file.txt", file.write)
下篇文章我们将介绍 socketserver 创建自定义服务器,并深入解析 scapy 进行网络数据包分析!