1.锐捷WEB认证脚本

在新有线校园网环境下使用路由器的时候,尤其是使用的是24H不断电的路由器的时候,往往会遇到要不停的每天在路由器的网络认证掉线之后重新连接的问题。

一般来说,如果校园网不出什么临时检修的问题,那么一次认证大概能持续一天的有效期,并且大多数自动掉线集中在凌晨2:50-3:30这一时间段。

所以,我们只需要弄一个每天至少一次的定时任务(建议6次为佳,分别位于0/4/8/12/16/20点),在任务里执行一次连接校园网的路由器脚本,即可确保正常情况下路由器在我们用的时段一直不会断网,不需要我们自己重连了。

当然,你还可以把这个脚本的执行时间间隔弄的更短些,例如10分钟一次。这样晚上的断网时长也会变得很短。

以下为脚本内容(from RuijiePortalLoginShellScript):

#!/bin/sh

if [ "${#}" -lt "2" ]; then
  echo "Usage: ./ruijie.sh username password"
  echo "Example: ./ruijie.sh 2017123412345 123456"
  exit 1
fi

captiveReturnCode=`curl -s -I -m 10 -o /dev/null -s -w %{http_code} http://www.google.cn/generate_204`
if [ "${captiveReturnCode}" = "204" ]; then
  echo "你已经成功认证了!"
  exit 0
fi

loginPageURL=`curl -s "http://www.google.cn/generate_204" | awk -F \' '{print $2}'`

loginURL=`echo ${loginPageURL} | awk -F \? '{print $1}'`
loginURL="${loginURL/index.jsp/InterFace.do?method=login}"

#service的参数默认设置为校园网了,如有需要自行修改
#校园网:internet
#中国移动:%25E7%25A7%25BB%25E5%258A%25A8%25E5%2587%25BA%25E5%258F%25A3
#中国电信:%25E7%2594%25B5%25E4%25BF%25A1%25E5%2587%25BA%25E5%258F%25A3
service="internet"
queryString="这里填写你的queryString"
queryString="${queryString//&/%2526}"
queryString="${queryString//=/%253D}"


if [ -n "${loginURL}" ]; then
  authResult=`curl -s -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36" -e "${loginPageURL}" -b "EPORTAL_COOKIE_USERNAME=; EPORTAL_COOKIE_PASSWORD=; EPORTAL_COOKIE_SERVER=; EPORTAL_COOKIE_SERVER_NAME=; EPORTAL_AUTO_LAND=; EPORTAL_USER_GROUP=; EPORTAL_COOKIE_OPERATORPWD=;" -d "userId=${1}&password=${2}&service=${service}&queryString=${queryString}&operatorPwd=&operatorUserId=&validcode=&passwordEncrypt=false" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" "${loginURL}"`
  echo $authResult
fi

使用教程

1. 获取属于自己的queryString

首先,要退出锐捷认证,然后打开 http://192.168.2.135 ,就是如下图所示的界面:

地址栏里面就是我们要的

复制这个页面的 URL (完整网址),URL中 index.jsp? 后面的这一长串就是我们所需的 queryString 参数。

就如以下这个URL:

http://192.168.2.135/eportal/index.jsp?wlanuserip=***&wlanacname=***&ssid=&nasip=***&snmpagentip=&mac=***&t=wireless-v2&url=***&apmac=&nasid=***&vid=***&port=***&nasportid=***

其中wlanuserip=***&wlanacname=***&ssid=&nasip=***&snmpagentip=&mac=***&t=wireless-v2&url=***&apmac=&nasid=***&vid=***&port=***&nasportid=***就是我们所需的 queryString 参数。

2. 修改脚本并保存

用你自己的替换掉上面的脚本中的“这里填写你的queryString”,记得不要把引号也给我替换掉了。最后大概那一行大概长这样:

queryString="wlanuserip=***&wlanacname=***&ssid=&nasip=***&snmpagentip=&mac=***&t=wireless-v2&url=***&apmac=&nasid=***&vid=***&port=***&nasportid=***"

脚本默认连接校园网,如果你想要连接其他出口,请修改脚本中的service参数,怎么修改这里都写明白了:

#service的参数默认设置为校园网了,如有需要自行修改
#校园网:internet
#中国移动:%25E7%25A7%25BB%25E5%258A%25A8%25E5%2587%25BA%25E5%258F%25A3
#中国电信:%25E7%2594%25B5%25E4%25BF%25A1%25E5%2587%25BA%25E5%258F%25A3
service="internet"

将上述替换后的脚本内容保存到名为ruijie.sh的文件中,UTF-8编码。

3. 上传脚本到路由器并赋予执行权限

在这里我用的是WinSCP上传的,然后记得赋予执行权限。

我在这里安装了U盘,所以直接就传到opt环境中去了,各位记得自己传的路径(在这里我把脚本放在/opt/root里)。另外,请注意老毛子padavan路由器重启后存储在内存中的内容会失效的特点,具体详见前面的文章

上传脚本到路由器并赋予权限

4. 路由器安装curl

通过 ssh 连接到路由器。然后执行以下指令,安装 curl:(废话,当然需要OPT环境)

opkg update
opkg install curl

5. 设置路由器时间

修改老毛子的时区为你所在地的时区(北京时间的那个),然后记得启用 NTP 同步,确保服务器正确。

路由器时间设置

6. 配置 crontab 计划任务

老毛子的定时任务的格式为:

# 基本格式 :
# 0  *  *  *  *  command
# 分 时 日 月 周 命令
# 在以上各个字段中,还可以使用以下特殊字符:
# 第一个数字(分钟)不能为*
# 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
# 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
# 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
# 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
 #删除开头的#启动命令 :自定义设置 - 脚本 - 自定义 Crontab 定时任务配置
# 定时运行脚本规则 (删除前面的#即可启动命令)

以我们推荐的几个间隔为例:

# 每4小时执行一次
0 */4 * * * /opt/root/ruijie.sh 校园网账号 密码
# 或者狠一点每10分钟执行一次
*/10 * * * * /opt/root/ruijie.sh 校园网账号 密码
# 或者定时每天3点40执行一次
40 3 * * * /opt/root/ruijie.sh 校园网账号 密码

替换你的账号密码将这一行任务添加到“系统管理 - 服务 - 计划任务(crontab)”里保存就行。

然后你之后就不用自己再动手连网了,正常情况路由器基本上插上过一会儿就有网。

2.SCUNET连接助手脚本

此脚本为批处理脚本,需要管理员权限运行。可以完美解决连不上SCUNET的问题,也有较大几率解决SCUNET频繁登出的问题,目前仅定制了江安一教/综合楼/图书馆,后期更新只放到内部群里了(见前面的加群页),如有问题可加入内部群/追剧群反馈。


@echo off

title SCUNET连接助手公测版
setlocal enabledelayedexpansion
echo SCUNET连接助手,在你人在一教综合楼连接不上SCUNET时帮你强力连接上的脚本,也有几率解决SCUNET频繁登出的问题,由syaoran制作
echo=
echo 更新地址:1.SCU网络避坑指北,网址:https://scunet.syaoran.top
echo           2.(主要渠道)SCU资源站外部群,资源站网址:https://file.syaoran.top,外部QQ群:534629825
echo=
echo 使用说明:选择你所在的区域,将修改WIFI设置,自动尝试该区域的专用强力连接模式,尝试后将提示打开登录界面(浏览器输入地址 192.168.2.135 并回车)
echo 如果在3秒后能正常打开登录界面就说明成功了,一般每次连接成功率在3.3成左右,如果打不开请按照提示多试几次,如果试了十几次还不行请加群反馈。
echo=
echo 注1:强力模式只适合特定区域的SCUNET,如果你需要连接其他WIFI,但之前用过强力模式,请选择下面的“修改为普通模式”,否则没法连网
echo 注2:请右键点击脚本文件使用管理员权限运行,否则易报错!
echo 注3:请在SCUNET信号较强处连接,否则成功率不高,如果在尝试强力连接后WIFI是断线的状态,请先尝试手动连接两下,不行再按照提示重试。
echo=
goto init
:init
set chose=
set ethernetAdapter=
set cks=
set subMask=
set gateway=
set DNS1=202.115.32.39
set DNS2=202.115.32.36
set defaultSubMask=255.255.255.0
echo 修改为普通模式,请输入1
echo 人在一教,请输入2
echo 人在综合楼,请输入3
echo 人在图书馆,请输入4
echo=
set /p chose=请选择你的选择:
netsh interface show interface
echo=
echo 上面显示了你电脑上所有的网口信息,在最后一列中
echo 选择最像无线网卡的接口名称(一般有WLAN/WIFI/wireless等字样)复制到下方并回车!
echo 一定要保证名称正确,不要多空格!
echo=
set /p adaptername=输入无线接口名称:
:reconnect
set ipAddr=
if !chose! == 1 (
    goto auto
) else (
    if !chose! == 2 (
        goto static2
    ) else (
      if !chose! == 3 (
          goto static3
      ) else (
        if !chose! == 4 (
            goto static4
        ) else (
               if !chose! == exit (
                  exit /b
               ) else (
                    goto error
        )
      )
    )
  )
)
:eof
:auto
echo 自动模式
goto scanEthernetAdapter
:eof
:static2
echo=
set /a AA=10
set /a BB=132
set /a CC=!random! %% 15
set /a DD=!random! %% 254
set ipAddr=!AA!.!BB!.!CC!.!DD!
set subMask=255.255.240.0
set gateway=10.132.15.254
goto scanEthernetAdapter
:eof
:static3
echo=
set /a AA=10
set /a BB=132
set /a CC=!random! %% 3 + 36
set /a DD=!random! %% 254
set ipAddr=!AA!.!BB!.!CC!.!DD!
set subMask=255.255.252.0
set gateway=10.132.39.254
goto scanEthernetAdapter
:eof
:static4
echo=
set /a AA=10
set /a BB=132
set /a CC=!random! %% 4 + 28
set /a DD=!random! %% 254
set ipAddr=!AA!.!BB!.!CC!.!DD!
set subMask=255.255.252.0
set gateway=10.132.31.254
goto scanEthernetAdapter
:eof
:scanEthernetAdapter
set ethernetAdapter=%adaptername%
echo 输入的无线网卡名称为!ethernetAdapter!
goto setup
pause
:eof
:setup
if !chose! == 1 (
    echo=
    echo 正在设置普通模式...
    netsh interface ip set address name = %ethernetAdapter% source = dhcp
    netsh interface ip set dns name = %ethernetAdapter% source = dhcp
    echo 设置成功!可以正常连接其他WIFI了
) else (
    echo=
    echo 正在强力连接...
    if "%subMask%"=="" (
        echo=
        echo IP地址: %ethernetAdapter% %ipAddr% %defaultSubMask% %gateway%
        netsh interface ip set addr name=%ethernetAdapter% source=static addr=%ipAddr% mask=%defaultSubMask% gateway=%gateway%
    ) else (
        echo=
        echo IP地址: %ethernetAdapter% %ipAddr% %subMask% %gateway%
        netsh interface ip set addr name=%ethernetAdapter% source=static addr=%ipAddr% mask=%subMask% gateway=%gateway%
    )
    echo=
    echo 正在设置首选DNS...
    cmd /c netsh interface ip set dns name=%ethernetAdapter% source=static addr=%DNS1% register=PRIMARY validate=no
    echo=
    echo 正在设置备用DNS...
    cmd /c netsh interface ip add dns name=%ethernetAdapter% addr=%DNS2% validate=no
    echo=
    echo 强力连接已经配置成功!请在浏览器地址栏输入192.168.2.135并回车以打开登录页
    echo=
    goto check
)
pause
exit /b
:eof
:check
echo 现在是否可以正常打开登录页?是请输入1,否则请输入0重试
set /p cks=请输入:
if !cks! == 1 (
      echo 谢谢使用,欢迎加群交流:534629825,你现在可以关闭窗口了,记得连接别的WIFI前恢复到普通模式哦!
      pause
      exit /b
) else (
      if !cks! == 0 (
          goto reconnect
           ) else (
                goto error
                )
        )
:eof
:error
echo=
echo 输入错误,请重新输入
goto init
:eof

3.以上两个脚本的结合

仅为内部群试验性功能,理论上打开脚本,就能全自动连接上校园网,无视别人的校园网是否能够连上,无视登录认证,无视掉线,只需要保证账号可用即可。

results matching ""

    No results matching ""