menu Memories' Blog
search self_improvement
目录
自用FTP小工具分享
DNXRZL
DNXRZL 2023年01月31日  ·  阅读 370

故事

目前局域网传输软件挺多的,但都有一个问题,速度太慢了,几个G的文件传输真的很让人发狂的,好在我发现用FTP在局域网里传输文件速度还不错,5G WIFI下最高可以100m/s,一般也在40、50、60左右,这速度干翻基于http的传输,但每次都需要在电脑上手动输入ftp地址就很麻烦,能不能有一个软件,点一下就自动打开电脑资源管理器并自动访问手机开启的ftp?有,我用py捣鼓出来个软件,使用上达到了我的预期,还不错,分享出来吧!

注意

应用范围:电脑 和 手机之间
局域网注意:必须手机开5G频段热点,电脑连接热点
手机端软件:酷安下载
电脑端软件:蓝奏云

具体教程

手机打开FTP软件,“端口号”:必须设置为2121,”账户设置“:必须匿名模式,然后“启用FTP服务”

电脑双击这个刚下载的exe软件,即可自动打开资源管理器并访问手机开启的FTP服务

Py源码

from os import system
from time import sleep
from psutil import net_if_addrs
from socket import socket
from threading import Thread


def getIP():
    netData = net_if_addrs()
    n = 0
    for a in netData['WLAN']:
        if n == 1:
            return {'ip':a.address, 'mask':a.netmask}
        n += 1


def get_ip_lists(ip):
    ip_lists = []
    for i in range(0, 255):
        ip_lists.append('{}{}'.format(ip[:ip.rfind('.')+1], i))
    return ip_lists


def findFtp(ip):
    port = 2121
    sk = socket()
    sk.settimeout(0.1)
    conn_result = sk.connect_ex((ip, port))
    if conn_result == 0:
        system("explorer.exe %s" % 'ftp://'+ip+':'+str(port)+'/')
        print('ftp://'+ip+':'+str(port)+'/')
        fag.append(True)
    sk.close()

fag = []
thread_list = []
for i in get_ip_lists(getIP()['ip']):
    t = Thread(target=findFtp, args=(i, ))
    thread_list.append(t)

for thread in thread_list:
    thread.start()

for thread in thread_list:
    thread.join()

if len(fag) == 0:
    print('未在局域网发现FTP服务!')

sleep(2)
分类: 日常折腾
标签: 作品