#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
FILE=/tmp/`date +%s`
PID=/tmp/setProxy.pid
STATUS=/tmp/setProxy.stat
_description(){
cat <<eof
Autor:
Ricardo Brito do Nascimento
Email:
brito[at]incolume.com.br
Descrição:
execute este script com o comando \'source\';
para comprovar a execução do script, execute o comando \'export\';
eof
}
_help(){
cat << eof
ex:
$ source <script> [start,stop,status,restart--help,-h]
start) ativa o proxy;
stop) desativa o proxy;
status) indica se o script foi utilizado para configurar o proxy;
restart) executa um stop e logo após um start;
--help|-h) esta ajuda;
eof
}
_setProxy(){
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`
echo IP identificado: $IP
NET=`awk -F. \'{print $1"."$2"."$3}\' <<< $IP`
#echo $NET
if [ "$NET" == "192.168.56" ]; then
export http_proxy=http://192.168.56.14:8080
export https_proxy=http://192.168.56.14:8080
export ftp_proxy=http://192.168.56.14:8080
elif [ "$NET" == "192.168.25" ]; then
http_proxy=http://192.168.25.1:8080
https_proxy=http://192.168.25.1:8080
ftp_proxy=http://192.168.25.1:8080
else
export http_proxy=http://192.168.101.101:8080
export https_proxy=http://192.168.101.101:8080
export ftp_proxy=http://192.168.101.101:8080
fi
no_proxy="192.168.56.150,localhost"
echo "export http_proxy=$http_proxy && export https_proxy=$https_proxy && export ftp_proxy=$ftp_proxy && export no_proxy=$no_proxy" |tee $STATUS > $FILE
}
_erro(){
cat << fim
opção inválida, consulte o help, com as opções --help ou, -h.
fim
}
_start(){
#echo $FILE
_setProxy;
#echo $FILE
source $FILE;
touch $PID
echo Proxy bash ativado
}
_stop(){
echo "unset http_proxy https_proxy ftp_proxy no_proxy" > $FILE
source $FILE
[ -e $PID ] && rm -f $PID
[ -e $STATUS ] && rm -f $STATUS
echo Proxy bash inativado
}
_status(){
[ -e $PID ] && echo "Proxy bash ativo." || echo "Proxy bash inativo."
[ -e $STATUS ] && cat $STATUS
}
_restart(){
_stop;
_start;
}
case $1 in
start) _start;;
stop) _stop;;
status) _status;;
restart) _restart;;
-h|--help) _description;_help;;
\'\') echo \'Syntaxe:\'
_help;
echo;;
*) _erro ;;
esac
[ -e $FILE ] && rm -f $FILE