A pedido de um amigo que migrou para o Linux e não conseguiu encontrar ferramenta equiparável para o Linux, resolvi criar esse simples script que tem a função de controlar a sua banda de internet na rede.
O objetivo desse script é ficar varrendo a rede à procura de máquina online, e caso as encontre é reduzida a taxa de download e upload da máquina que estiver consumindo muita banda. O script pode ser executado em qualquer máquina na rede, mas o objetivo é rodar na máquina que estiver consumindo mais banda.
A utilidade desse script está voltada para aqueles que gostam de baixar muitos arquivos, geralmente grande, na internet e acaba ocupando toda a banda, deixando praticamente nada para os demais computadores que estão conectados à rede, dessa forma, deixando a rede lenta. Com esse script em execução basta que uma máquina apareça na rede que automaticamente a taxa de download e upload será reduzida, deixando as demais máquinas, que estão na rede, navegar com uma largura de banda maior.
Críticas e sugestões para novas implementações são sempre bem vindas!
Para executar o script:
$ sudo ./controle-de-banda.sh
ou
$ bash controle-de-banda.sh
#!/bin/bash # Por Tales A. Mendonça - 12/11/2010 - v0.2 # talesam.org clear # Checa a permissão if test $(id -u) != 0; then echo -e "e[1m *e[me[31m ERRO:e[m Sem permissão para executar o script" echo -e "e[1m *e[m Execute-o com e[33msudoe[m ou como e[33mroote[m" exit 0 fi # Checa se o wondershaper está instalo if [ "$(whereis wondershaper)" = "wondershaper:" ]; then echo -e "e[1m *e[me[31m ERRO:e[m Você não possui oe[m e[33mwondershaper e[minstalado, favor instalar" echo -e "e[1m *e[m Saindo do script.." sleep 2 exit 1 fi echo "" echo -e "Programa para controlar, limitar, a banda, tráfego, de uma máquina na rede.nEste script funciona da seguinte maneira: A máquina que estiver com um tráfego muitonelevado, por exemplo, baixando algum arquivo grande e ocupando toda a banda da redenpoderá rodar esse script para que esta mesma máquina seja limitada caso possua maisnmáquina em rede acessando a internet." echo "" echo -e "Escolha um valor para o e[1mDownloade[m ou [Enter] para default (*)" echo "" echo -e " 1. e[32m128e[m kbps = e[33m16e[m KB/s" echo -e " 2. e[32m256e[m kbps = e[33m32e[m KB/s" echo -e " 3. e[32m300e[m kbps = e[33m37.5e[m KB/s" echo -e "* 4. e[32m512e[m kbps = e[33m64e[m KB/s" echo -e " 5. e[32m600e[m kbps = e[33m75e[m KB/s" echo -e " 6. e[32m1024e[m kbps = e[33m128e[m KB/s" echo -e " 0. e[31mSaire[m" read down case $down in 1) down=128 d=16 ;; 2) down=256 d=32 ;; 3) down=300 d=37.5 ;; 5) down=600 d=75 ;; 6) down=1024 d=128 ;; 0) exit 0 ;; *) down=512 d=64 ;; esac echo -e " Download = e[33m$de[m KB/s" echo "" echo -e "Escolha um valor para o e[1mUploade[m ou [Enter] para default (*)" echo "" echo -e " 1. e[32m128e[m kbps = e[33m16e[m KB/s" echo -e " 2. e[32m256e[m kbps = e[33m32e[m KB/s" echo -e " 3. e[32m300e[m kbps = e[33m37.5e[m KB/s" echo -e "* 4. e[32m512e[m kbps = e[33m64e[m KB/s" echo -e " 5. e[32m600e[m kbps = e[33m75e[m KB/s" echo -e " 6. e[32m1024e[m kbps = e[33m128e[m KB/s" echo -e " 0. e[31mSaire[m" read up case $up in 1) up=128 u=16 ;; 2) up=256 u=32 ;; 3) up=300 u=37.5 ;; 5) up=600 u=75 ;; 6) up=1024 u=128 ;; 0) exit 0 ;; *) up=512 u=64 ;; esac echo -e " Upload = e[33m$ue[m KB/s" echo "" echo -e "Escolha o tempo gasto para a checagem na rede por máquinas online ou [Enter] para default (*)" echo "" echo -e " 1. e[33m5e[ms" echo -e " 2. e[33m10e[ms" echo -e " 3. e[33m15e[ms" echo -e " 4. e[33m20e[ms" echo -e " 5. e[33m25e[ms" echo -e "* 6. e[33m30e[ms" echo -e " 7. e[33m35e[ms" echo -e " 8. e[33m40e[ms" echo -e " 9. e[33m45e[ms" echo -e " 10. e[33m50e[ms" echo -e " 11. e[33m55e[ms" echo -e " 12. e[33m60e[ms" echo -e " 0. e[31mSaire[m" read tempo case $tempo in 1) tempo=5 ;; 2) tempo=10 ;; 3) tempo=15 ;; 4) tempo=20 ;; 5) tempo=25 ;; 7) tempo=35 ;; 8) tempo=40 ;; 9) tempo=45 ;; 10) tempo=50 ;; 11) tempo=55 ;; 12) tempo=60 ;; 0) exit 0 ;; *) tempo=30 ;; esac echo -e " Upload = e[33m$tempoe[ms" echo "" echo -e "Digite o intervalo de máquinas que deseja pingar.nEx.: Para pingar as máquina com IP final 100, 103 e 110, então defina o valor como e[34m100 110e[m. nPara definir apenar uma máquina, especifique valores iguais, como e[34m100 100e[m" read faixaMaquina # ----------------------------------------------- # # ----------------------------------------------- # ### Não altere nada daqui para baixo ### # Muda a linguagem para o padrão, inglês LC_ALL_BACKUP=$LC_ALL export LC_ALL=C # Interface que será limitada a banda iface="$(route -n | grep UG | cut -d " " -f1- | rev | cut -d " " -f1 | rev)" # Pinga a faixa de IP definida faixaIp="$(ifconfig $iface | grep "inet addr" | cut -d: -f2 | cut -d " " -f1 | rev | cut -d. -f2- | rev)" # Último octeto do IP finalIp="$(ifconfig $iface | grep "inet addr" | cut -d. -f4 | cut -d " " -f1)" # Volta a linguagem para o formato original export LC_ALL=$LC_ALL_BACKUP # ----------------------------------------------- # clear # Libera toda a banda antes de iniciar o controle echo -e "Liberando toda a banda.." sleep 2 wondershaper clear $iface sleep 1 clear while : ; do echo -e "Procurando máquina(s) online.." x=1 for ip in $(seq $faixaMaquina); do if [ "$ip" != "$finalIp" ]; then ping -c 1 $faixaIp.$ip>/dev/null if [ $? -eq 0 ]; then x=0 echo -e "e[30;1m -> $faixaIp.e[me[32;1m$ip e[m" && break # Máquina online else x=1 fi fi done if [ $x != 0 ]; then echo -e "Máquinas online não encontradas, liberando toda a banda.." sleep 1 wondershaper clear $iface # Libera toda a banda else echo -e "Encontrado máquina Online, setando valores para download e upload" echo -e "Download = e[33m$down kbpse[m, Upload = e[33m$up kbpse[m" sleep 1 wondershaper $iface $down $up # Limita a banda fi sleep $tempo ; clear done
como sugestão, ao invés de usar ping para descobrir as maquinas. poderia usar arp -a
fica mais rapido e não tem problema de dar um ping em uma maquina com firewall ativo que não irá responder ao ping.
como sugestão, ao invés de usar ping para descobrir as maquinas. poderia usar arp -a
fica mais rapido e não tem problema de dar um ping em uma maquina com firewall ativo que não irá responder ao ping.
Obrigado, mas o arp não dará. Ele só mostra as máquina que “conversaram” com você nos últimos 60s e estiverem na mesma sub-rede. Não obtive sucesso usando ele, mas tem um comando que eu uso muito que independe de ping, o nmap com valores -sP xxx.xxx.xxx.* e já estou pensando em fazer um melhoramento com ele.
Obrigado, mas o arp não dará. Ele só mostra as máquina que “conversaram” com você nos últimos 60s e estiverem na mesma sub-rede. Não obtive sucesso usando ele, mas tem um comando que eu uso muito que independe de ping, o nmap com valores -sP xxx.xxx.xxx.* e já estou pensando em fazer um melhoramento com ele.
Achei muito interessante.
Como pode ser possivel fazer isso?
Tem como explicar um pouco o funcionamento da coisa?
Achei muito interessante.
Como pode ser possivel fazer isso?
Tem como explicar um pouco o funcionamento da coisa?
Olá marcondes, primeiro o “ser possível” acho que é só estudar o que deve ser feito, ter um pouco de conhecimento e abusar da criatividade.
Não sei se deu uma olhada no script, mas está bem simples e comentado, fácil de entender, mas o programa faz o seguinte, fica pingando, varrendo a procura de máquinas na rede que não seja a sua e caso encontre, é setado um valor de download e upload definido pelo usuário. O programa ao ser executado fica em loop infinito. Se as máquinas forem desconectadas da rede, a velocidade é retornada para o valor original, máximo que a rede suporta.
Abraços!
Olá marcondes, primeiro o “ser possível” acho que é só estudar o que deve ser feito, ter um pouco de conhecimento e abusar da criatividade.
Não sei se deu uma olhada no script, mas está bem simples e comentado, fácil de entender, mas o programa faz o seguinte, fica pingando, varrendo a procura de máquinas na rede que não seja a sua e caso encontre, é setado um valor de download e upload definido pelo usuário. O programa ao ser executado fica em loop infinito. Se as máquinas forem desconectadas da rede, a velocidade é retornada para o valor original, máximo que a rede suporta.
Abraços!
legal, eu saquei a parada da procura de computadores na rede. só não entendi como isso é possivel. Como que acontece a mágica de configurar um limite de down e up em outra placa de rede… essa era minha dúvida.
legal, eu saquei a parada da procura de computadores na rede. só não entendi como isso é possivel. Como que acontece a mágica de configurar um limite de down e up em outra placa de rede… essa era minha dúvida.
Ele é configurado na própria máquina, esse é o objetivo e não nas demais, para isso tem programas mais complexos que fazem algo parecido com isso.
Ele é configurado na própria máquina, esse é o objetivo e não nas demais, para isso tem programas mais complexos que fazem algo parecido com isso.
Então a parada limita a conexão na minha máquina? Onde estou executando o script, caso alguem esteja copiando alguma coisa dos meus compartilhamentos os de alguma outra aplicação é isso?
Então a parada limita a conexão na minha máquina? Onde estou executando o script, caso alguem esteja copiando alguma coisa dos meus compartilhamentos os de alguma outra aplicação é isso?
Não, se você está baixando algo e comendo toda a banda e existem mais pessoas na rede que querem apenas navegar, não vão conseguir. Executando o script na sua máquina vai baixar a banda para que as outras possam navegar.
Não, se você está baixando algo e comendo toda a banda e existem mais pessoas na rede que querem apenas navegar, não vão conseguir. Executando o script na sua máquina vai baixar a banda para que as outras possam navegar.
Não consegui realizar a execução desse script, não sei o que aconteceu. segui passo a passo.
abri o terminal e digitei o 1° comando: $ bash controle-de-banda.sh
e em seguida apareceu: $: comando não encontrado
será que falta alguma coisa?
Não consegui realizar a execução desse script, não sei o que aconteceu. segui passo a passo.
abri o terminal e digitei o 1° comando: $ bash controle-de-banda.sh
e em seguida apareceu: $: comando não encontrado
será que falta alguma coisa?
Olá, está usando qual distribuição Linux?
tente dar um chmod +x controle-de-banda.sh e depois execute com ./controle-de-banda.sh
Olá, está usando qual distribuição Linux?
tente dar um chmod +x controle-de-banda.sh e depois execute com ./controle-de-banda.sh
Tales,
Descubra as máquinas da rede com um broadcast ARP.
– NMAP
– http://www.netscantools.com/nstpro_arp_scan.html
– etc….
Tales,
Descubra as máquinas da rede com um broadcast ARP.
– NMAP
– http://www.netscantools.com/nstpro_arp_scan.html
– etc….
Olá e obrigado! Eu jé tinha procurado sobre isso logo depois que joguei o script no ar, mas estou meio sem tempo agora, talvez quando entrar de férias veja isso 😉 Mas se quiser pode pegar o script modificar, fiquei a vontade.
Desculpe minha ignorancia mas esse script pode ser executado no windows?
Desculpe minha ignorancia mas esse script pode ser executado no windows?
Não sei te dizer porque nunca cheguei a testar. Mas tem um programa chamado cygwin que você consegue ter uma sistema unix dentro do Windows. Dê uma pesquisada.
Testosterone is another powerful anabolic steroid that is usually taken to help with muscle growth and strength buy cialis uk Health Benefits
js加密 hello my website is js加密
chupa chups hello my website is chupa chups
7 (english hello my website is 7 (english
to excel hello my website is to excel
halloween dress hello my website is halloween dress
key pro hello my website is key pro
pertandingan terus hello my website is pertandingan terus
jedar88 lol hello my website is jedar88 lol
daftar mba4d hello my website is daftar mba4d
Urethra, This is a good website Urethra
Dysfunction, This is a good website Dysfunction
Groin, This is a good website Groin
Genitalia, This is a good website Genitalia
Enhance, This is a good website Enhance
Sex pill, This is a good website Sex pill
Nudity, This is a good website Nudity
Erectile, This is a good website Erectile
Vagina, This is a good website Vagina