用python写一款FTP自动化的脚本

admin 2023年5月31日11:18:50评论18 views字数 3007阅读10分1秒阅读模式

   使用Python的ftplib库进行FTP文件下载和上传的完整指南

         

免责声明
写在前面:内容仅用于学习交流使用;由于传播、利用本公众号钟毓安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号钟毓安全及作者不为承担任何责任,一旦造成后果请使用者自行承担!如有侵权,请及时告知,我们会立即删除并致歉!

0x01 正文

最近脚本写上头了,遇到了常见的ftp上传下载,本着方便第一的原则准备写一个。

Python提供了ftplib库,可以轻松地使用FTP进行文件下载和上传。但是既然是脚本设计思路得本着与人方便于己方便的原则,对于其中用到的几个参数做一些设计。

         

代码解析和说明:

         

from ftplib import FTP

import argparse

在开始之前,我们导入了需要使用的ftplib库和argparse库,前者用于进行FTP操作,后者用于解析命令行参数。

         

def download_file_from_ftp(server, username, password, ftp_file_path, local_file_path):

    # 连接到FTP服务器

    ftp = FTP(server)

    ftp.login(username, password)

这里定义了一个名为download_file_from_ftp的函数,它接受FTP服务器地址、用户名、密码、FTP文件路径和本地文件保存路径作为参数。在函数内部,我们使用FTP类创建一个FTP对象,并使用login方法登录到FTP服务器。

         

    # 切换到FTP文件路径

    ftp.cwd(ftp_file_path)

使用cwd方法切换到指定的FTP文件路径。

         

         

    # 下载文件

    with open(local_file_path, 'wb') as file:

        ftp.retrbinary('RETR ' + ftp_file_path, file.write)

使用open函数创建一个本地文件对象,模式为二进制写入('wb')。然后,使用retrbinary方法从FTP服务器下载文件并将其写入本地文件。

         

         

    # 关闭FTP连接

    ftp.quit()

使用quit方法关闭FTP连接。

         

         

def upload_file_to_ftp(server, username, password, ftp_file_path, local_file_path):

    # 连接到FTP服务器

    ftp = FTP(server)

    ftp.login(username, password)

这里定义了一个名为upload_file_to_ftp的函数,功能是将文件上传到FTP服务器。函数的参数与download_file_from_ftp函数相同。

         

         

    # 切换到FTP文件路径

    ftp.cwd(ftp_file_path)

使用cwd方法切换到指定的FTP文件路径。

         

         

    # 上传文件

    with open(local_file_path, 'rb') as file:

        ftp.storbinary('STOR ' + ftp_file_path, file)

使用open函数创建一个本地文件对象,模式为二进制读取('rb')。然后,使用storbinary方法将本地文件上传到FTP服务器。

         

         

    # 关闭FTP连接

    ftp.quit()

使用quit方法关闭FTP连接。

         

         

parser = argparse.ArgumentParser(description='FTP文件下载和上传脚本')

创建一个命令行参数解析器,并设置描述信息。

         

         

parser.add_argument('--u', help='FTP服务器地址')

parser.add_argument('--n', help='FTP账号')

parser.add_argument('--p', help='FTP密码')

parser.add_argument('--f', help='FTP服务器文件路径')

parser.add_argument('--l', help='本地文件保存路径')

添加命令行参数,包括FTP服务器地址(--u)、FTP账号(--n)、FTP密码(--p)、FTP服务器文件路径(--f)和本地文件保存路径(--l)。

         

         

args = parser.parse_args()

解析命令行参数,并将结果存储在args变量中。

         

         

download_file_from_ftp(args.server, args.username, args.password, args.ftp_file_path, args.local_file_path)

调用download_file_from_ftp函数,传入命令行参数的值,实现文件下载功能。

         

         

upload_file_to_ftp(args.server, args.username, args.password, args.ftp_file_path, args.local_file_path)

调用upload_file_to_ftp函数,传入命令行参数的值,实现文件上传功能。

         

完整代码:

         用python写一款FTP自动化的脚本

总结:

没事儿写脚本写出来的东西由于时间问题也没有怎么调整,欢迎指正不足,大佬轻喷!


0x02 好物推荐

用python写一款FTP自动化的脚本

小白学Python编程的入门经典教程,结合ChatGPT应用,让你学得会、用得上、做得出!

0x03 看到这里了,师傅不加个群嘛

    欢迎师傅们加入我的 钟毓安全的小屋(群内添加本人好友请备注),一起学习进步~后面不定期发布更多资源,更多惊喜等着大家。

WX群请私聊李趴菜,请优先选择qq群
用python写一款FTP自动化的脚本
欢迎 点赞 + 在看、分享本公众号 给更多师傅们哈
❤️
----------------往期精选-----------------
记一次野站渗透过程
反序列化学习-php-1
Invicti-Professional-v23.5
【投稿】目前最新版安全狗绕过
hfish蜜罐离线部署
某src支付逻辑有误导致任意支付
内网读我就够了-60%
逆向工具合集
关于卡密订单一次操作记录
内网-知识库-50%
内网-知识库-45%

内网-知识库-进度35%

内网渗透笔记-绝密续集-3

内网渗透笔记-绝密续集-2

内网渗透笔记-绝密

Invicti-23.2.0.39705

123云盘会员权益它来啦~

资源屋

物联网安全测试流程笔记

Acunetix v15.3

什么?作为一个网安人你还不会取证??

物理网安全-文件系统系统迁移

物联网安全-硬件设备组成

年终学习总结

什么?你还不会本机信息收集?

介绍几款自动化取证工具

Go语言-自学篇-2

Autopsy-使用文档

对自己手机的一次取证之路

注:

1、内容来源书籍总结,及个人总结,和互联网数据若干,不存在盗用等情况;

2、壁纸来源于https://wallhaven.cc;

3、特声明,壁纸不存在低俗 引流等行为,本文重点在于共享资源;


原文始发于微信公众号(钟毓安全):用python写一款FTP自动化的脚本

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月31日11:18:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用python写一款FTP自动化的脚本https://cn-sec.com/archives/1760753.html

发表评论

匿名网友 填写信息