win10和linux利用curl实现校园网自动登录

问题来源:一些学校或者企业的网络通常需要连接wifi时在弹出来的登录界面上填写用户名和密码才能连网,比较麻烦,本文用curl编写脚本,在windows10和linux上实现连接wifi时即可上网,并且定时检测网络状态,保持电脑始终联网

用curl写脚本

首先,在win10上,我这里使用谷歌浏览器,保持上网账号为注销状态,连接wifi,弹出上网登录界面,点击F12,接着点Network。
然后在左侧界面填写用户名和密码,点击登录,观察右侧Network界面的变化。
点击login?callback,右侧有一个request url,复制request url
在这里插入图片描述

windows上实现自动运行脚本

在自己的工作路径上新建一个.txt文件,里面的内容是curl+“request url”

curl "request url"

requesr url 换成刚刚自己复制的,保存代码,将.txt脚本改成.ps1格式。
紧接着打开windows的任务计划程序点击创建基本任务
在这里插入图片描述
具体设置见链接

linux上实现自动运行脚本

有两种方法:

第一种方法:用linux contrab工具

先在终端的指定路径新建一个脚本

$sudo nano connect.sh

将上文的curl脚本复制进来,保存并退出,此时在Linux的终端上用以下指令运行脚本,成功联网

$sudo sh ./connect.sh

接下来打开contrab工具

$contrab -e

进入crontab的任务部署文档,里面用于存放需要定时启动的任务
直接跳到文件的最后一行,在后面添加,其中,/usr/connect.sh更换为自己的路径

"10 02 * * *  /usr/connect.sh"

crontab任务表的格式如下:

# 注释行
f1 f2 f3 f4 f5 program
  • #开始的行为注释行
  • f1表示分钟周期,范围 (0 - 59)
  • f2 表示小时周期,范围(0-23)
  • f3 表示月份中的日期,范围(1-31)
  • f4 表示月份,范围(1-12)
  • f5 表示星期中的第几天,范围(0-6)从星期日开始计数,也可使用sun,mon,tue,wed,thu,fri,sat
  • program 表示要执行的程序命令行
    关于contrab的更详尽介绍见这篇文章
第二种方法:自己写脚本运行

同样新建一个脚本文件

$sudo nano connect.sh

在里面添加内容(这段代码的意思就是检测是否能连上百度,如果不能就重新curl一下网络)

timeout=5
target=www.baidu.com
ret_code=`curl -I -s --connect-timeout $timeout $target -w %{http_code} | tail $
if [ "x$ret_code" = "x200" ]; then
else
       这一行添加上文写过的curl "request url"代码
fi

在终端运行一下

$sudo sh ./connect.sh

这里遇到一个问题,最开始运行完代码并不能后发现Ping通百度,在终端上直接ping www.baidu.com也失败
分析原因:没有配置DNS服务器
网上有很多在Linux上配置DNS的方法,附上一个

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值