document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #!/bin/bash
  2. PATH=$PATH:$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin
  3. FILE=/tmp/`date +%s`
  4. PID=/tmp/setProxy.pid
  5. STATUS=/tmp/setProxy.stat
  6. VERSION=1.6
  7.  
  8. _description(){
  9. cat <<eof
  10. Autor:
  11.     Ricardo Brito do Nascimento
  12.  
  13. Email:
  14.     brito[at]incolume.com.br
  15.  
  16. Descrição:
  17.     Instalar: para instalar este script execute: \'source set_proxy install\';
  18.     Desinstalar: para desinstalar este script execute: \'source set_proxy uninstall\';
  19.     Comprovar execução: para comprovar a execução do script, execute o comando \'export\';
  20.  
  21.     OBS: após executar os comandos \'source set_proxy install\' e \'source set_proxy uninstall\',
  22.     o shell será finalizado e fechado para carregar as variáveis de ambiente necessárias.
  23. eof
  24.  
  25. }
  26. _help(){
  27. cat << eof
  28. ex:
  29.   $ source <script> [install,uninstall]
  30.   $ <script> [start,stop,status,restart--help,-h,-v,-V,--version]
  31.      install) carrega as variáveis necessárias para o script no ~/bin, é necessário o source para executar;
  32.      uninstall) limpa as variáveis necessárias para o script funcionar e
  33.         desinstala o script no ~/bin, é necessário o source para executar;
  34.          start) ativa o proxy;
  35.          stop) desativa o proxy;
  36.          status) indica se o script foi utilizado para configurar o proxy;
  37.      restart) executa um stop e logo após um start;
  38.          --help|-h) esta ajuda;
  39.      --version|-v|-V) exibe a versão do script;
  40. eof
  41. }
  42.  
  43. _version(){
  44. echo $VERSION
  45. echo
  46. }
  47.  
  48. _setProxy(){
  49. IP=`ifconfig |grep inet|grep -Eo \'([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}\'|egrep -v ^127|egrep -v ^255|head -1`
  50.  
  51. echo IP identificado: $IP
  52.  
  53. NET=`awk -F. \'{print $1"."$2"."$3}\' <<< $IP`
  54. #echo $NET
  55.  
  56. if [ "$NET" == "192.168.56" ]; then
  57.    http_proxy=http://192.168.56.14:8080
  58.    https_proxy=http://192.168.56.14:8080
  59.    ftp_proxy=http://192.168.56.14:8080
  60. elif [ "$NET" == "192.168.25" ]; then
  61.    http_proxy=http://192.168.25.1:8080
  62.    https_proxy=http://192.168.25.1:8080
  63.    ftp_proxy=http://192.168.25.1:8080
  64. else
  65.    http_proxy=http://192.168.101.101:8080
  66.    https_proxy=http://192.168.101.101:8080
  67.    ftp_proxy=http://192.168.101.101:8080
  68. fi
  69.  
  70. no_proxy="192.168.56.150,localhost"
  71. echo "export http_proxy=$http_proxy && export https_proxy=$https_proxy && export ftp_proxy=$ftp_proxy && export no_proxy=$no_proxy" |tee $FILE| sed \'s/ &&//g; s/export /\\n/g\' |sort -n > $STATUS
  72. }
  73.  
  74. _erro(){
  75. cat << fim
  76. opção inválida, consulte o help, com as opções --help ou, -h.
  77. fim
  78. }
  79.  
  80. _install(){
  81. echo "alias set_proxy.sh=\'source $HOME/bin/set_proxy.sh\'; #set_proxy.sh" >> $HOME/.bashrc
  82. exit 0;
  83. }
  84.  
  85. _uninstall(){
  86. sed -i \'/#set_proxy.sh/d\' $HOME/.bashrc
  87. _stop;
  88. exit 0;
  89. }
  90.  
  91. _rmFile(){
  92. [ -e $1 ] && rm -f $1
  93. }
  94.  
  95. _start(){
  96. #echo $FILE
  97. _setProxy;
  98. #echo $FILE
  99. source $FILE;
  100. touch $PID
  101. _rmFile $FILE
  102. echo Proxy bash ativado
  103. }
  104.  
  105. _stop(){
  106. echo "unset http_proxy https_proxy ftp_proxy no_proxy" > $FILE
  107. source $FILE
  108. _rmFile $PID
  109. _rmFile $STATUS
  110. _rmFile $FILE
  111. echo Proxy bash inativado
  112. }
  113.  
  114. _status(){
  115. [ -e $PID ] && echo "Proxy bash ativo." || echo "Proxy bash inativo."
  116. [ -e $STATUS ] && cat $STATUS
  117. }
  118.  
  119. _restart(){
  120. _stop;
  121. _start;
  122. }
  123. case $1 in
  124.         install) _install;;
  125.         uninstall) _uninstall;;
  126.         start) _start;;
  127.         stop) _stop;;
  128.         status) _status;;
  129.         restart) _restart;;
  130.         -h|--help) _description;_help;;
  131.         -v|-V|--version) _version;;
  132.         \'\') echo \'Syntaxe:\'
  133.             _help;
  134.             echo;;
  135.         *) _erro ;;
  136. esac
');