python局域网下载文件

需求是这样的:实现pc端的文件手机端可以下载。现在qq、微信和钉钉都能实现文件下载,而且可以不在一个局域网内。但是会有一定的限制,比如文件大小。于是利用python的simplehttpserver(python3 http.server)实现了下,界面使用pyqt5写的。打包成exe用的是pyinstaller。

特点:同一个局域网内文件分享,在不同的机器上下载。

遇到的主要困难是如何拿到pc端的ip地址。

下载:window下exe程序

实现原理:

1 有个进程中运行httpserver, 处理网络请求。认证是通过url中带的code实现。

2 根据获取到的文件路径设置url中请求参数。

获取pc的ip地址是这样实现的:

def get_local_ip():
    info = psutil.net_if_addrs()
    ip_list = []
    for k, v in info.items():
        for item in v:
            if item.family == socket.AddressFamily.AF_INET:
                ip_list.append(item.address)
    ip_list.remove("127.0.0.1")
    return ip_list

借助了psutil,其实利用socket也能获取到。如果有虚拟机,注意可能会有虚拟网卡。

最后的效果图:

效果图

项目地址https://github.com/woshimanong1990/local_file_share

 

补充:

建了一个qq群:389954854,主要目的是互帮互助,通过交流促进python技术。很多初学者往往不知道如何下手,还等什么,快快加入进来吧!

389954854

或者关注微信公众号:python码码有趣的

python码码有趣的

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值