2022-08-14 20:24:44 +08:00
2022-06-24 20:45:34 +08:00
2022-06-24 20:45:34 +08:00
2022-06-24 20:45:34 +08:00
2022-03-02 22:49:24 +08:00
2022-08-14 20:24:44 +08:00
2022-08-14 20:24:44 +08:00
2021-07-15 10:46:05 +08:00
2022-03-11 18:01:24 +08:00

BitSrunLoginGo

Lisense Release GoReport

深澜校园网登录脚本Go语言版。GO语言可以直接交叉编译出mips架构可执行程序路由器主流平台更不用说了从而免除安装环境。

主要登录逻辑来自: https://github.com/coffeehat/BIT-srun-login-script

对Openwrt更加友好的ipk编译版 Mmx233/BitSrunLoginGo_Openwrt 该版本压缩了binary文件节省闪存空间

🛠️构建

*运行程序不需要golang环境

建议安装使用最新版golang

直接编译本系统可执行程序:

go build

交叉编译Linux

export GOGGC=0
export GOOS=windows #系统
export GOARCH=amd64 #架构
go build

交叉编译Powershell

$env:GOGGC=0
$env:GOOS='linux' #系统
$env:GOARCH='amd64' #架构
go build

golang支持的系统与架构请自行查询

⚙️运行

编译结果为可执行文件,直接启动即可

可以通过添加启动参数--config指定配置文件路径,默认为当前目录的Config.yaml

支持jsonyamlymltomlhcltfvars等,仅对jsonyaml进行了优化与测试

./autoLogin --config=/demo/i.json

首次运行将自动生成配置文件

Config.json说明

{
  "form": {
    "domain": "www.msftconnecttest.com", //登录地址ip或域名
    "username": "", //账号
    "user_type": "cmcc", //运营商类型,详情看下方
    "password": "" //密码
  },
  "meta": { //登录参数
    "n": "200",
    "type": "1",
    "acid": "5",
    "enc": "srun_bx1"
  },
  "settings": {
    "basic": { //基础设置
      "https": false, //访问校园网API时直接使用https URL
      "skip_cert_verify": false, //是否忽略证书验证
      "interfaces": "", //网卡名称正则注意JSON转义eth0\\.[2-3],不为空时为多网卡模式
      "timeout": 5 //网络请求超时时间(秒)
    },
    "guardian": { //守护模式
      "enable": false,
      "duration": 300, //网络检查周期(秒)
    }, 
    "daemon": { //后台模式不建议windows使用
      "enable": false,
      "path": ".BitSrun", //守护监听文件路径,确保只有单守护运行
    },
    "debug": {
      "enable": false, //开启debug模式报错将更加详细
      "write_log": false, //写日志文件
      "log_path": "./" //日志文件存放路径
    }
  }
}

登录参数从原网页登陆时对/srun_portal的请求抓取,抓取时请把浏览器控制台的preserve log(保留日志)启用。

运营商类型在原网页会被自动附加在账号后,请把@后面的部分填入user_type,没有则留空(删掉默认的)

🧩 作为module使用

*本项目使用了AGPL V3 License请酌情引用

示例:

package main

import (
	"github.com/Mmx233/BitSrunLoginGo/v1"
	"github.com/Mmx233/BitSrunLoginGo/v1/transfer"
)

func main() {
	//具体用法请查看struct注释
	if e:=BitSrun.Login(&srunTransfer.Login{
		Https:      false,
		OutPut:    false,
		Debug:  false,
		WriteLog: false,
		Transport: nil,
		LoginInfo: srunTransfer.LoginInfo{
			Form: &srunTransfer.LoginForm{
				Domain:   "",
				UserName: "",
				UserType: "",
				PassWord: "",
			},
			Meta: &srunTransfer.LoginMeta{
				N:    "",
				Type: "",
				Acid: "",
				Enc:  "",
			},
		},
	});e!=nil {
		panic(e)
    }
}
Description
No description provided
Readme AGPL-3.0 6.8 MiB
Languages
Go 98.7%
Dockerfile 1.1%
Batchfile 0.2%