Python3 网络编程4:SSH 与 FTP 网络编程
                           
天天向上
发布: 2025-03-16 12:14:50

原创
785 人浏览过

在 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 进行网络数据包分析!

发表回复 0

Your email address will not be published. Required fields are marked *