SDU Speed Downloader 原理和编程过程
2016-08-21(日)
by chenjia.me
山大网速现状
山大工作时间的网速白天限制在347k,也就是我们所的3M宽带,晚上限速178k,也就是我们1.5M宽带。 如此低的速度导致很多人在下载东西需要大量的时间的去等待。
如何提速
通过分析山大的网络,我们可以发现在202.194.19.20这个IP上部署了一个cache服务器,也就是我们平时所说的缓存服务器。 这个服务器原理就是在所有经过其流量的用户二次下载后就会有很快的速度(通过HTTP 304来替换目标网址)
提速原理
欺骗缓存服务器,强制其命中。通过其下载文件来绕过202.194.0.45的限速服务器的速度限制。
关于Python的界面
Python2 可以使用 Tkinter
来写简单的界面
关于Python打包成exe单文件
我们可以使用
PyInstaller
来打包文件
其支持py2和py3 支持图形界面(会有一点小问题)
其还支持upx
exe的压缩,减小文件体积
PyInstaller
支持使用pip
命令进行安装。非常方便
编译py文件到exe可以使用如下命令:
pyinstaller -c --log-level DEBUG -p /path/to/library/ -i /path/to/iocn -F --upx-dir /path/to/upx/ main.py
-c
为控制台,窗口的话改为-w
。-p
为依赖库位置-D
为打包为文件夹,就是一个exe带一堆dll,-F
则为打包为单个exe文件main.py
为程序的入口
pyc->py
Python文件的反编译比较简单,在pip
中安装uncompyler
,然后运行uncompyler 对应的pyc文件
,加上对应的输出,比如-o
到指定文件夹,就能将pyc反编译为py文件进行编辑了。
不过中文字符反编译会后就是unicode或者utf-8的编码,需要自己再将其转换为中文即可