Skip to content

๐ŸŒ A headless login / logout CLI for 10.0.0.55 at BIT, now in Rust. ๅŒ—ไบฌ็†ๅทฅๅคงๅญฆ 10.0.0.55 ๆ กๅ›ญ็ฝ‘็™ปๅฝ•็™ปๅ‡บ็š„ Rust ๅฎž็Žฐ

License

Notifications You must be signed in to change notification settings

spencerwooo/bitsrun-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

71 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

bitsrun

GitHub Workflow Status (CI) GitHub Workflow Status (Release) GitHub release Crates.io

๐ŸŒ A headless login and logout CLI for 10.0.0.55 at BIT, now in Rust.

CleanShot 2023-12-04 at 16 47 26@2x

Install

One-line install (Linux / macOS, recommended)

  • curl -fsSL https://cdn.jsdelivr.net/gh/spencerwooo/bitsrun-rs@main/install.sh | sh -

Ubuntu / Debian (recommended for systemd support)

  • Download the latest .deb package from Releases.
  • sudo apt install </path/to/file>.deb

If bitsrun.service systemd service required:

  • Edit /lib/systemd/system/bitsrun.service to specify absolute config path
  • Then start service with sudo systemctl start bitsrun

Cargo

  • cargo install bitsrun

Download binary

  • Download the latest binary from Releases.
  • Uncompress file: tar -xvf <file>.tar.gz
  • Move binary to $PATH, such as: mv <file>/bitsrun ~/.local/bin/

Usage

To log into or out of the campus network, simply:

$ bitsrun login -u <username> -p <password>
bitsrun: <ip> (<username>) logged in

$ bitsrun logout -u <username>
bitsrun: <ip> logged out

To check device login status:

$ bitsrun status
bitsrun: <ip> (<username>) is online
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Traffic Used   โ”‚ Online Time   โ”‚ User Balance  โ”‚ Wallet  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 188.10 GiB     โ”‚ 2 months      โ”‚ 10.00         โ”‚ 0.00    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

To keep the session alive, use bitsrun keep-alive:

$ bitsrun keep-alive
 INFO  bitsrun::daemon > starting daemon (<username>) with polling interval=3600s
 INFO  bitsrun::daemon > <ip> (<username>): login success,
 ...
 ^C INFO  bitsrun::daemon > <username>: gracefully exiting

Note

Use available system service managers to run bitsrun keep-alive as a daemon. (e.g., systemd for Linux, launchd for macOS, and Windows Service for Windows).

Available commands

$ bitsrun --help
A headless login and logout CLI for 10.0.0.55 at BIT

Usage: bitsrun [OPTIONS] [COMMAND]

Commands:
  login         Login to the campus network
  logout        Logout from the campus network
  status        Check device login status
  config-paths  List all possible config file paths
  keep-alive    Poll the server with login requests to keep the session alive
  help          Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose  Verbose output
  -h, --help     Print help
  -V, --version  Print version

Tip

Use environment variable NO_COLOR=true to disable colored output.

Config and credentials

To save your credentials and configurations, create config file bit-user.json under an available config path as:

{
  "username": "<username>",
  "password": "<password>",
  "dm": true,
  "poll_interval": 3600
}
  • dm is for specifying whether the current device is a dumb terminal, and requires logging out through the alternative endpoint. Set to true (no quotes!) if the device you are working with is a dumb terminal.
  • poll_interval is an optional field for specifying the interval (in seconds) of polling login requests. Default is 3600 seconds (1 hour). Used by bitsrun keep-alive only.

Available config file paths can be listed with:

$ bitsrun config-paths
bitsrun: list of possible config paths
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Priority โ”‚ Possible Config Path                                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 1        โ”‚ /Users/spencerwoo/.config/bit-user.json                     โ”‚
โ”‚ 2        โ”‚ /Users/spencerwoo/.config/bitsrun/bit-user.json             โ”‚
โ”‚ 3        โ”‚ /Users/spencerwoo/Library/Preferences/bitsrun/bit-user.json โ”‚
โ”‚ 4        โ”‚ bit-user.json                                               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Note

The config file location is OS-dependent. Run the command to check the accepted locations on your system.

Set permissions of this file to 600 on Linux and macOS, or bitsrun will refuse to read it.

$ chmod 600 <path/to/bit-user.json>

Related

  • zu1k/srun - Srun authentication system login tools. (Rust)
  • Mmx233/BitSrunLoginGo - ๆทฑๆพœๆ กๅ›ญ็ฝ‘็™ปๅฝ•่„šๆœฌ Go ่ฏญ่จ€็‰ˆ (Go)
  • vouv/srun - An efficient client for BIT campus network. (Go)
  • BITNP/bitsrun - A headless login / logout script for 10.0.0.55 at BIT. (Python)

License

MIT

About

๐ŸŒ A headless login / logout CLI for 10.0.0.55 at BIT, now in Rust. ๅŒ—ไบฌ็†ๅทฅๅคงๅญฆ 10.0.0.55 ๆ กๅ›ญ็ฝ‘็™ปๅฝ•็™ปๅ‡บ็š„ Rust ๅฎž็Žฐ

Topics

Resources

License

Stars

Watchers

Forks