歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux下登錄新版TUNet的bash腳本

Linux下登錄新版TUNet的bash腳本

日期:2017/3/1 10:40:40   编辑:Linux編程
寫了一個登錄新版TUNet的腳本,因為是一邊翻書一邊寫的,所以非常挫,不過應該能用。

寫這個最初目的是做嵌入式的大作業的,因為TUNet更新了,所以不能做以前的那個mytunet的交叉編譯了。。。

腳本在Openwrt上測試通過。

把腳本中的your_username替換成info的用戶名,your_password_md5替換成你的密碼的md5,可以用echo -n your_password | md5sum來得到。另外腳本需要curl,Ubuntu用戶可以用sudo apt-get install curl來安裝。

代碼如下:

  1. #!/bin/bash
  2. # your info's username
  3. uname=your_username
  4. # your info's password's md5sum
  5. pass=your_password_md5
  6. ####################################################
  7. do_login() {
  8. login_data='username='$uname'&password='$pass'&drop=0&type=1&n=100'
  9. check_data='action=check_online'
  10. # check whether already online
  11. con=`curl -d $check_data -s http://net.tsinghua.edu.cn/cgi-bin/do_login`
  12. if [ -z $con ]; then
  13. # start login
  14. res=`curl -d $login_data -s http://net.tsinghua.edu.cn/cgi-bin/do_login`
  15. #handle result
  16. pe=`echo $res | grep error`
  17. if [ -z $pe ]; then
  18. echo "Login Success!"
  19. else
  20. echo $pe
  21. exit 0
  22. fi
  23. # display flux infomation
  24. flux=`echo $res | awk -F ',' '{print $3}'`
  25. a=$(($flux/1000000000))
  26. b=$((($flux%1000000000)/100000000))
  27. c=$((($flux%100000000)/10000000))
  28. echo "Used Flux: "$a"."$b$c"G."
  29. else
  30. echo "Already Online!"
  31. # display flux information and online time
  32. flux=`echo $con | awk -F ',' '{print $3}'`
  33. time=`echo $con | awk -F ',' '{print $5}'`
  34. a=$(($flux/1000000000))
  35. b=$((($flux%1000000000)/100000000))
  36. c=$((($flux%100000000)/10000000))
  37. h=$(($time/3600))
  38. m=$(($(($time%3600))/60))
  39. s=$(($(($time%3600))%60))
  40. echo "Used Flux: "$a"."$b$c"G, Online Time: "$h":"$m":"$s"."
  41. fi
  42. }
  43. do_logout() {
  44. # start logout
  45. res=`curl -s http://net.tsinghua.edu.cn/cgi-bin/do_logout`
  46. #handle result
  47. if [ "$res" == "logout_ok" ]; then
  48. echo "Logout Success!"
  49. elif [ "$res" == "not_online_error" ]; then
  50. echo "You're not Online!"
  51. else
  52. echo "Operation Failed!"
  53. fi
  54. }
  55. ##################################################################################
  56. if [ "$1" == "login" ]; then
  57. do_login
  58. elif [ "$1" == "logout" ]; then
  59. do_logout
  60. else
  61. echo "Usage: "$0" {login|logout}"
  62. fi
Copyright © Linux教程網 All Rights Reserved