之前介绍了使用Python编写FTP服务器(9行代码)和客户端,今天介绍使用Python搭建TFTP服务器。

需要使用的第三方库是:minimumTFTP,我在安装它的时候遇到些问题(使用的是pip3 install minimumTFTP),显示安装成功,但使用的时候会出错,windows和linux一样,并且下载源码安装同样不能正常使用。最终去github.com下载了minimumTFTP.py,放在了Python的sys.path中(前面文章介绍过)才算搞定。直接上代码:

import minimumTFTP

tftpServer = minimumTFTP.Server('d:\\ljds')

tftpServer.run()

只需注意第二行,本次实验共享目录是D盘下的ljds。(测试发现传输的文件如果有中文总会有问题,所以实验演示传输的文件名都不带中文。minimumTFTP相关介绍资料太少,暂时无解)

运行脚本后,查看端口69已经开启:

python服务器搭建(3行代码搭建TFTP服务器)(1)

TFTP使用UDP69端口

TFTP服务器已经搭建好了,实验完成!

如果就此结束,文章就显得太水了,接下来演示TFTP的上传和下载。

服务器端目录

目前在共享目录(D盘的ljds文件夹)中,放了一个Cisco IOS,TFTP客户端脚本:

import minimumTFTP

tftpClient = minimumTFTP.Client('192.168.1.101', '.', 'c7200-js-mz.122-25.S15.bin')

tftpClient.get()

需要说明的是第二行,里面使用了3个参数,解释如下:

## arg1: server_IP_address

## arg2: client_directory

## arg3: get or put filename

即:服务器IP地址是192.168.1.101,将文件下载至当前目录,下载文件名是c7200-js-mz.122-25.S15.bin。现在运行客户端的下载脚本:

python服务器搭建(3行代码搭建TFTP服务器)(2)

下载TFTP服务器上的文件

查看脚本所在目录:

python服务器搭建(3行代码搭建TFTP服务器)(3)

完成下载

TFTP上传:

接下来演示上传,将需要上传的文件和上传脚本放在同一目录,这里测试使用ljds.pdf:

python服务器搭建(3行代码搭建TFTP服务器)(4)

实验前状态

TFTP上传脚本:

import minimumTFTP

tftpClient = minimumTFTP.Client('192.168.1.101', '.', 'ljds.pdf')

tftpClient.put()

执行脚本:

python服务器搭建(3行代码搭建TFTP服务器)(5)

将文件上传至TFTP服务器

查看TFTP服务器共享目录:

python服务器搭建(3行代码搭建TFTP服务器)(6)

实验后状态

实验完成!

如果对我的文章感兴趣,请订阅我的头条号。欢迎评论交流学习。

或者关注新浪微博“梁家大叔”,有惊喜!!!

,