一个linux主机与手机或者其他电脑共享文件的小工具开发
目录
Github:
https://github.com/dyingstraw/FileShare/tree/master
思路:
再linux电脑是运行一个http server,然后需要传输文件的设备去访问这个http服务。
效果:
首先再linux端运行python脚本--根据提示选择一个你的内网IP,如果没有提示就不要管了。之后生成了一个二维码,手机扫码就可以访问服务,电脑端没办法扫码可以直接访问二维码下面的地址。可以直接打开pdf,其他的文件类型也可以直接下载,非常nice
服务端
手机端访问:
电脑浏览器:
实践:
requirement.txt
qrcode
numpy
python3
code
import http.server
import socketserver
import socket
import numpy as np
import os
import random
import qrcode
from qrcode.constants import ERROR_CORRECT_H
ips = socket.gethostbyname_ex(socket.gethostname())
print(ips)
if len(ips[2])>1:
for index,ip in enumerate(ips[2]):
print(index,ip)
n=input("请输入你局域网内的IP序号:")
n=int(n)
ip=ips[2][n]
print("选择的ip是:",ip)
port = random.randint(8000,30000)
qr = qrcode.QRCode(version=1,
error_correction=ERROR_CORRECT_H,
box_size=1, border=1)
qr.add_data("http://{}:{}".format(ip,port))
img = qr.make_image()
img=np.array(img)
for i in range(img.shape[0]):
str="echo "
for j in range(img.shape[1]):
if img[i][j]:
str+=" \x1b[40;37m"
else:
str+=" \x1b[47;37m"
str+="\x1b[0m"
os.system(str)
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("0.0.0.0", port), Handler) as httpd:
print("serving at http://{}:{}".format(ip,port))
httpd.serve_forever()
控制台颜色定义
字体色 | 字背景色 | 颜色描述
------------------------------------------
30 | 40 | 黑色
31 | 41 | 红色
32 | 42 | 绿色
33 | 43 | 黃色
34 | 44 | 蓝色
35 | 45 | 紫红色
36 | 46 | 青蓝色
37 | 47 | 白色
-------------------------------------------