Linux下登录新版TUNet的bash脚本


写了一个登录新版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.   
  11. # check whether already online  
  12. con=`curl -d $check_data -s http://net.tsinghua.edu.cn/cgi-bin/do_login`  
  13.   
  14. if [ -z $con ]; then  
  15. # start login  
  16. res=`curl -d $login_data -s http://net.tsinghua.edu.cn/cgi-bin/do_login`  
  17.   
  18. #handle result  
  19. pe=`echo $res | grep error`  
  20. if [ -z $pe ]; then  
  21. echo "Login Success!"     
  22. else  
  23. echo $pe  
  24. exit 0  
  25. fi  
  26.   
  27. # display flux infomation  
  28. flux=`echo $res | awk -F ',' '{print $3}'`  
  29. a=$(($flux/1000000000))  
  30. b=$((($flux%1000000000)/100000000))  
  31. c=$((($flux%100000000)/10000000))  
  32. echo "Used Flux: "$a"."$b$c"G."   
  33.   
  34. else  
  35. echo "Already Online!"  
  36.   
  37. # display flux information and online time  
  38. flux=`echo $con | awk -F ',' '{print $3}'`  
  39. time=`echo $con | awk -F ',' '{print $5}'`  
  40. a=$(($flux/1000000000))   
  41. b=$((($flux%1000000000)/100000000))  
  42. c=$((($flux%100000000)/10000000))  
  43. h=$(($time/3600))  
  44. m=$(($(($time%3600))/60))  
  45. s=$(($(($time%3600))%60))  
  46. echo "Used Flux: "$a"."$b$c"G, Online Time: "$h":"$m":"$s"."  
  47. fi  
  48. }  
  49.   
  50. do_logout() {  
  51. # start logout  
  52. res=`curl -s http://net.tsinghua.edu.cn/cgi-bin/do_logout`  
  53.   
  54. #handle result  
  55. if [ "$res" == "logout_ok" ]; then  
  56. echo "Logout Success!"  
  57. elif [ "$res" == "not_online_error" ]; then  
  58. echo "You're not Online!"  
  59. else  
  60. echo "Operation Failed!"  
  61. fi  
  62. }  
  63.   
  64. ##################################################################################  
  65. if [ "$1" == "login" ]; then  
  66. do_login  
  67. elif [ "$1" == "logout" ]; then  
  68. do_logout  
  69. else  
  70. echo "Usage: "$0" {login|logout}"  
  71. fi  

相关内容