树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网

文章目录

  • 写在前面
  • 一、http请求分析
  • 二、树莓派Ubuntu下载Pycharm并配置Anaconda环境
    • 1.下载Pycharm
    • 2.配置Anaconda环境
  • 三、创建Python脚本
  • 四、使用crontab定时运行python脚本
  • 总结


写在前面

现在大学校园网普遍需要认证登录才能用,但深大每天晚上12点断电导致路由器离线,而且长时间没人用也要重新认证,所以想用常通电的小型Linux主机来自动认证校园网。之前看到网上大佬往路由器内刷openwrt固件来实现校园网自动认证,但我多次尝试向我的小米路由器4A千兆版刷入openwrt固件,虽然每次都提示刷写成功,但没法通过SSH或Telnet访问,百度搜了一下最新的说法是官方修补了可攻击的漏洞,所以趁着手边有一个树莓派,那就收割一下它的生产力,让它自动认证校园网。

一、http请求分析

GET请求和POST请求是http请求的两种方式,底层都是 TCP/IP协议。 对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返回数据)表示成功;而对于 POST,浏览器先发送 header,服务器响应 100, 浏览器再继续发送 data,服务器响应 200 (返回数据)。

GET请求通常是通过url地址请求,POST请求则是通过form表单请求。

远程访问进入Ubuntu桌面打开自带的火狐浏览器,按F12呼出控制台,如果登录了先logout退出。

树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网_第1张图片
找到工具栏里的网络一项,再次登录进去后在网路里找到login登录的一个数据包,可以看到浏览器是通过get请求的方式将数据包发给服务器。

树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网_第2张图片
所以我们只需要复制那一串url地址,然后通过python的requests库,利用get请求这串url地址就可以实现自动认证了。

二、树莓派Ubuntu下载Pycharm并配置Anaconda环境

1.下载Pycharm

Pycharm是python的IDE开发环境,这个链接是社区开源免费版。
Pycharm 社区免费版

树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网_第3张图片

Linux操作系统和Windows不一样,缺少一些图形化UI和快捷键,经常需要用到终端命令。

找到压缩包的下载位置,一般在Download目录下,然后在压缩包目录下打开终端,用tar命令解压缩。

tar -xzf pycharm-community-2022.2.4.tar.gz

这里Pycharm的版本按自己下载的来,解压缩完后会出现一个没有tar.gz后缀的文件包。

cd回到根目录下,使用mkdir命令在opt目录下新建文件夹,opt文件夹主要是安装程序的引导和程序文件,如果缺少必要的文件,安装的程序无法正常启动,一般多是第三方软件。

sudo mkdir /opt/pycharm

cd到解压好的pycharm文件在的那个文件夹,将解压好的文件夹的全部文件移动到/opt/pycharm文件夹下。

sudo mv pycharm-community-2022.2.4/ /opt/pycharm/

然后在终端启动Pycharm.

sh /opt/pycharm/pycharm-community-2022.2.4/bin/pycharm.sh

接着右键创捷桌面快捷方式
树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网_第4张图片

基本就安装好了,想添加到环境变量的小伙伴请自行百度。

2.配置Anaconda环境

Anaconda是一个安装、管理python相关包的软件,还自带python、Jupyter Notebook、Spyder,包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas、requests等

下载Anaconda 安装包

在官网上会显示你当前电脑的操作系统

树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网_第5张图片
但树莓派4b是ARM64位操作系统,所以与X86架构的64位安装方式不一样,首先打开终端。

wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-armv7l.sh

下载好后cd到Download目录下

sudo bash Miniconda3-latest-Linux-armv7l.sh

经过不停的enter与yes后,等待安装完毕

进入vim文本编辑器添加路径

vim ~/.bashrc

按i进入编辑模式,在最后一行添加如下代码(miniconda3的绝对路径)

export PATH="/home/pi/miniconda3/bin:$PATH"

然后按esc推出,并输入 :wq 退出vim编辑器,Anaconda的环境就基本配置好了。

source ~/.bashrc 

最后用source命令进行更新就可以了。

三、创建Python脚本

先创建一个python工程和wifi-auto_config.py文件.

写python脚本自动认证校园网,我们需要用到 requests 和 pyinstaller 这两个库,requests 库主要是用来向网页发送请求,pyinstaller库用来将我们写好的代码打包成类似于 .exe 的可执行程序。

按如下步骤添加两个库
树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网_第6张图片
树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网_第7张图片
树莓派4b学习笔记二(树莓派防吃灰折腾)- - 树莓派4b自动执行python脚本登录深大校园网_第8张图片
可以通过post和get两种方式请求,这里我们选择简单一点的get请求,然后将下面的代码修改一下复制到wifi-auto_config.py内。


# 自动登录深大校园网脚本,打包生成exe后设置开机自启动即可自动登录
#!/usr/bin/python3 
import requests    # 用于向目标网站发送请求

url = '复制的那串url地址'    
response = requests.get(url).status_code  # 直接利用 GET 方式请求这个 URL 同时获取状态码
print("状态码{}".format(response))  # 打印状态码

创建脚本文件,在文件开头需要加上下面一行

#!/usr/bin/python

上面这行的作用是说明使用哪个解释器来执行该文件

此时可以logout校园网然后打开终端,输入python3 + wifi-auto_config.py文件的绝对路径,看看是否成功登录。

python3 /home/Ljm/PycharmProjects/pythonProject/wifi-certification/wifi-auto_config.py

成功登陆后终端会返回“状态码200”。

chmod  +x  wifi-auto_config.py

在终端上利用chmod命令给该文件添加可执行的权限。

四、使用crontab定时运行python脚本

参数定义:-u 指定用户,-l 列出用户任务计划,-r 删除用户任务,-e 编辑用户任务

打开终端用-e编辑定时任务

crontab -e

在最后一行添加下面代码,路径根据自己的来定,操作类似vim编辑器。

* * * * * /usr/bin/python3 /home/Ljm/PycharmProjects/pythonProject/wifi-certification/wifi-auto_config.py

保存退出“:wq”

5个“*”分别表示分钟,小时,日,月,年,小伙伴们自己定义就好了,后面跟上python解释器的绝对路径和wifi-auto_config.py的绝对路径。

10 7 * * * /usr/bin/python3 /home/Ljm/PycharmProjects/pythonProject/wifi-certification/wifi-auto_config.py

上面这行就表示每天上午7:10自动执行wifi-auto_config.py文件。

*/1 * * * * /usr/bin/python3 /home/Ljm/PycharmProjects/pythonProject/wifi-certification/wifi-auto_config.py

这行表示每隔1分钟自动执行wifi-auto_config.py文件。

当然也可以通过systemdl和service来实现树莓派开机自动认证,有兴趣的小伙伴可以自行百度看看大佬的方法。

总结

本篇博客主要想记录一下学习过程中的收获,本人刚入门有很多不懂的,博客中的错误还请大神雅正。实现校园网的自动认证有很多种方法,也有大神通过iPhone的快捷指令来实现,原理上其实差不多。Linux小主机的优势就在于可以常通电,如果手上有的小伙伴快去挖掘它的生产力吧。

你可能感兴趣的:(python,学习,嵌入式硬件)