python版清华大学联网助手
github:https://github.com/HaoyuHu/python
学习完python之后,能够明白它的语法和特性,感觉这是一种与C/C++和java截然不同的语言,它更高级,更接近自然语言。所以能通过极少的代码完成其他语言需要几百行代码才能完成的任务。前些阵子曾经用python从各大网站上抓取信息用作分析数据,觉得挺过瘾。因此为了满足在linux下快速连接校园网和查询流量的需求,决定用python实现一个联网助手,能通过命令行进行操作。需要注意的是,本python版pytunet是基于python3.4,相应的语法和模块也遵循python3的要求。由于python3的相关内容在网上还不是很多,在编程过程中受到很多python2的文章的误导,走了很多弯路。不过也加深了我对python3的理解。同时也对python严格的缩进要求表示*&…%¥(just kiding)。后面在python2和python3不同的地方我也会特别指出。
最终目标希望完成如下几个功能:
(1)登录校园网
(2)登出校园网
(3)查询当前网络状态
(4)查询流量、帐户余额、当前用户组等基本信息
(5)查询本账号当前在线IP信息
(6)查询每日流量使用明细,并生成直方图
使用方法:
使用前请到同级目录下USERNAME_PASSWORD.txt文件中修改你的校园网账号和密码。
可将tunet.py设置为外部命令,参数如下:
-h, --help : 显示帮助
-v, --version: 显示当前清华大学联网助手版本号
-u : 输入用户名
-p : 输入密码
-a : 稍后输入用户名和密码,可以登录其他校园网帐户
-i, --login : 联网操作(当不带任何其他操作时,默认进行联网操作)
-o, --logout : 断网操作
-c, --check : 检查当前网络状态
-q, --query : 查询流量、帐户余额、当前用户组等基本信息,查询本账号当前在线IP信息,查询每日流量使用明细,并生成直方图,查询结果保存在USER_DETAIL_INFOMATION.LOG文件下
说明:
(1)USER_DETAIL_INFOMATION.LOG文件保存最近一次综合查询结果
(2)USERNAME_PASSWORD.txt文件保存用户的账号和密码
版本v1.2更新内容:
(1)增加了账户和密码的文件管理
(2)性能调整
(3)当不带任何参数时,默认连接校园网,简化输入
版本v1.1更新内容:
(1)增加了综合查询功能:查询流量、帐户余额、当前用户组等基本信息,查询本账号当前在线IP信息,查询每日流量使用明细,并生成直方图,查询结果保存在USER_DETAIL_INFOMATION.LOG文件中
版本v1.0更新内容:
(1)提供基本的联网、断网和检查当前网络状态的操作
python实现分析总共分为3个部分:本篇为第一篇。
本篇将分析如下几个问题:
1 如何利用hashlib处理密码;
2 如何实现带账号密码登录的网页request和urlopen;
3 如何实现带参数输入的自定义命令;
4 如何实现当前日期和时间的获取;
5 if __name__ == '__main__'的作用。
1 如何利用hashlib处理密码:
--载入模块hashlib:import hashlib;
--md5的使用:
a) md5是计算机安全领域广泛使用的一种哈希函数。
b) 首先创建md5对象,然后用update(password)实现密码到加密散列值的过程。注意此处password必须经过统一编码,也就是说pass