curl命令实现上网认证登录

为了想让组里的服务器连外网下数据,需要命令行上网登录。与很多高校的上网方式一样,大气所上网采用的是用户帐号登录验证的方法。上网需要需要先开浏览器,然后打开网页输入帐号密码登录。参考了前人的一些帖子,最终尝试,得到成功。

 

1 先打开浏览器,进入登录界面。

2 启动开发者工具(chrome浏览器是按F12)

3 点击开发者工具中的Network选项卡,勾选其中的Preserve log选项

4 在网页中输入用户名和密码,登录上网。随后在开发者工具面板中的Name窗口中查找跟登录有关的关键字字段。如果选中一个关键字字段,其对应Headers选项卡中出现From Data条目,则该关键字字段是和登录有关的字段(有的高校的关键字字段是login,大气所的是webAuth)。在找到的关键字字段上右键,Copy,Copy as cURL(bash),就复制了相应的登录命令。

 

5 在bash命令行输入复制的命令。经过试验,应该是只要输入网址和--data参数就可以。

 curl 'http://159.226.119.25/webAuth/'  --data 'username=[用户名]&password=[加密后的密码]&pwd=[加密后的密码]&secret=true' --compressed

 6 关于登出上网账号,参考上面相同方法。经过尝试,大气所登出上网账号的命令行如下:

 curl 'http://159.226.119.25/ajaxlogout?_t=1557234881666' -H 'DNT: 1' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: zh-CN,zh;q=0.9' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36' -H 'Accept: */*' -H 'Referer: http://159.226.119.25/' -H 'Cookie: ac_login_info=passwork' -H 'Connection: keep-alive' --compressed ;

 

##20210322更新##
#大气所更新上网认证系统后,以前登出帐号的命令失效。这个时候需要先登陆上网帐号,从返回信息中获取sessionId和token,然后在登出命令中附上这个的sessionId和令牌token,就可以成功登出帐号了 

 

参考网址:

1. 使用curl登陆上网账号 https://blog.51cto.com/mayuenjkxt/1564071

2. python实现校园网自动登录 https://blog.csdn.net/shenhuaifeng/article/details/78333851

3. 校园网账号自动登录 https://blog.csdn.net/ujsDui/article/details/79192225

4, 基于python和cURL实现网络服务自动认证 https://blog.csdn.net/hijack00/article/details/52462290

posted @ 2019-04-01 15:30  chinagod  阅读(21021)  评论(0编辑  收藏  举报