本人计算机能力一般,只是在已有的工作上做了简单的修改,主要参考了每日自动体温上报、"平安报"自动化折腾日记、USTB-daily-report。文章每日自动体温上报提供了自动上报的操作思路,"平安报"自动化折腾日记进行了具体实现,利用Charles软件抓包,使用shell编程实现了自动填报的功能,代码在GitHub仓库USTB-daily-report。我把shell代码改成了python,并加入了微信推送的功能,仓库地址为https://github.com/hanfangyuan4396/USTB-daily-report。另外,在上报的数据中,有个位置信息是根据手机的GPS生成,是学校判断学生位置的重要依据,但使用自动上报的方式,这个位置信息是可以自由编辑的,还请大家自觉遵守,如实上报位置。本教程目的是帮大家免去每天提交健康信息的重复任务,但同时也需要大家自觉保证上报的信息真实。不过有位博士借助home assistance软件自动定位用户的位置并上传,有兴趣的同学可以自行研究实现ustb-daily-with-hass(什么叫博士的严谨啊,战术后仰)。废话到此,下面进入正题。
要想实现自动上报,首先需要获取到每天上传报的信息,我们需要获取两部分内容,一部分叫sessionid,相当于我们储存在计算机中的身份证号,计算机靠它来判断上报数据的人是谁,另一个部分就是每天上报的信息,比如你的体温、地址等信息,下面就介绍一下如何获取这两部分信息。
iOS用户相对来说获取比较简单,借助stream软件即可实现上述功能。
进入stream软件,点击开始抓包,会提示VPN配置信息,点击允许。 接着会弹出安装证书提示,点击去安装证书。 点击步骤一:安装CA证书。 下载配置描述文件,点击允许。 下载完成后,进入手机的设置页面,点击已下载描述文件。 点击右上角的安装。
安装完成。 进入手机设置->通用->关于本机,拉到最底部,进入证书信任设置,信任刚刚安装的证书。至此,证书安装完毕。
安装并信任证书后,回到stream软件,回提示让我们信任证书,不过我们已经信任证书了,直接点击我已经信任过了。 点击设置抓包模式。 开启白名单模式。 设置抓包的域名为 *.ustb.edu.cn,然后点击立即生效。 然后点击开始抓包,回到微信提交平安报。 提交后,回到stream软件,点击请求数查看抓到的包,点击POST开头的请求。
查看POST请求,在请求头部的最下面可以看到JSESSIONID=XX。
可以看到如下信息,即为上报的信息。 复制JSESSIONID和上报的信息,至此抓包完成。如果不愿继续折腾,可以把这两部分信息发给了解一些计算机知识的朋友,帮你填。