Hamachi - Controle Gráfico
Publicado por Perfil removido 31/08/2007
[ Hits: 6.151 ]
Este script em bash cria uma interface gráfica para o Hamachi, um programa que cria redes virtuais.
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=5848
Sei que existe o gHamachi, mas criei este só para testar minhas habilidades em shell-script.
É preciso ter o zenity para criar os diálogos e ter a configuração do gksudo para executar comandos como o root (pelo menos o /sbin/tuncfg).
#!/bin/bash #Script para controle gráfico do Hamachi #Você precisa ter o zenity instalado, #além do hamachi, é claro. #Também é necessário que o seu usuário possa usar #o gksudo para executar programas como o root # #Hamachi é propriedade de Applied Networking Inc. # #Script original feito por Xisberto [xisberto (at) gmail (dot) com] #e licenciado sob a GNU GPLv3. Detalhes em http://www.gnu.org/licenses/gpl-3.0.txt #Mensagem de boas vindas mostrando o status atual zenity --info --text="Iniciando a interface de configuração do Hamachi. Status atual do Hamachi:\n\n `hamachi`" #Função para selecionar uma rede #Chama o zenity para listar as redes #Passa o resultado do zenity por 2 cut, #para eliminar os colchetes inicial e final #mas sempre haverão problemas com redes com [ ou ] no nome select_net() { #Dois subshells, leia com atenção! #o 'cut -d* -f2' evita que o * vindo da listagem chame os arquivos no diretório atual #o 'grep ]' filtra para não mostrar os ips conectados rede="`echo $redes | zenity --list --text='Escolha uma rede:' --column 'Redes' $(hamachi list|cut -d* -f2|grep ])`" #Dois cut para remover os [ ] rede="$(echo $rede | cut -d[ -f2 | cut -d] -f1)" echo $rede } #Função para juntar-se a uma rede. #Chama o zenity para conseguir um nome para a rede #e depois para conseguir uma senha para a rede. #Depois informa via zenity o resultado do comando join do hamachi join() { red_nom=`zenity --entry --text='Entre com o nome da rede:'` red_sen=`zenity --entry --text='Entre com a senha da rede:'` zenity --info --text="`hamachi join $red_nom $red_sen`" } #Função para criar uma rede. #Chama o zenity para conseguir um nome para a rede #e depois para conseguir uma senha para a rede. #Depois informa via zenity o resultado do comando create do hamachi criar_rede() { red_nom=`zenity --entry --text='Entre com o nome da rede:'` red_sen=`zenity --entry --text='Entre com a senha da rede (não deixe em branco!):'` zenity --info --text="`hamachi create $red_nom $red_sen`" } #Usa a função select_net para selecionar uma rede #e a passa para o hamachi delete del_rede() { rede=`select_net` zenity --info --text="`hamachi delete $rede`" } #Usa a função select_net para selecionar uma rede #e a passa para o hamachi leave leave() { rede=`select_net` zenity --info --text="`hamachi leave $rede`" } #Usa a função select_net para selecionar uma rede #e a passa para o hamachi go-online online() { rede=`select_net` zenity --info --text="`hamachi go-online $rede`" } #Usa a função select_net para selecionar uma rede #e a passa para o hamachi go-offline offline() { rede=`select_net` zenity --info --text="`hamachi go-offline $rede`" } #Submenu para os comandos de rede. redes() { #Inicia a variável de controle com um valor genérico (problemas com "" e " " me levaram a isso) NETACTION="r" while [ "$NETACTION" != "Voltar" ] do NETACTION=`zenity --list --text="Escolha uma opção:" --column "Opções de Rede" "Entrar em uma rede" "Sair de uma rede" "Anunciar-se em uma rede" "Invisível em uma rede" "Criar rede" "Apagar rede" "Listar redes" "Voltar"` echo $NETACTION case $NETACTION in "Entrar em uma rede") join ;; "Sair de uma rede") leave ;; "Anunciar-se em uma rede") online ;; "Invisível em uma rede") offline ;; "Criar rede") criar_rede ;; "Apagar rede") del_rede ;; "Listar redes") zenity --info --text="Redes atuais:\n$(hamachi list)" ;; esac done } #Inicia a variável de controle com um valor genérico ACTION="b" #Loop principal. Veja que o script não termina se o botão 'cancelar' for clicado. #É necessário selecionar 'Sair' e clicar em ok. while [ "$ACTION" != "Sair" ] do #Chama o zenity para listar as opções. ACTION=`zenity --list --text="Escolha uma opção:" --column "Opções" "Executar '/sbin/tuncfg'" "Parar '/sbin/tuncfg'" "Iniciar Hamachi" "Parar Hamachi" "Ver status" "Logar" "Logout" "Escolher nick" "Redes" "Sair"` #Para informar a ação escolhida. Pode ser útil quando um comando novo 'não funciona' echo $ACTION #Trata a ação escolhida. case $ACTION in #Executa o tuncfg com poderes de root. gksudo cuida da senha "Executar '/sbin/tuncfg'") gksudo /sbin/tuncfg ;; #Mata todos os tuncfg rodando. Seria bom trocar por algo menos bruto? "Parar '/sbin/tuncfg'") gksudo killall tuncfg ;; #O '&&' evita um zenity vazio "Iniciar Hamachi") zenity --info --text="`hamachi start && echo 'Hamachi inicado'`" ;; "Parar Hamachi") zenity --info --text="`hamachi stop`" ;; "Ver status") zenity --info --text="`hamachi`" ;; "Logar") zenity --info --text="`hamachi login`" ;; "Logout") zenity --info --text="`hamachi logout`" ;; #Dois subshells, leia com calma "Escolher nick") zenity --info --text="$(hamachi set-nick `zenity --entry --text='Digite o nick:'`)" ;; #Um submenu "Redes") redes ;; esac done
MGME - Mythic Game Master Emulator
Whitelist e Blacklist Zimbra 8.8
Transformar eBook em Audiobook
Conversor de vídeo com opção de legenda
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Alguém pode me ajudar porfavor como executar comandos ao iniciar no i3... (2)
Debian Bookworm para a versão beta Debian 13 Trixie (2)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (21)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba