python局域网下载文件

python 专栏收录该内容
13 篇文章 0 订阅

需求是这样的:实现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
    点赞
  • 5
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值