Automatizando configuração do wpa_supplicant (2wireless)
Publicado por Perfil removido (última atualização em 21/06/2016)
[ Hits: 4.145 ]
Um pequeno código em C, chamado "2wireless" para conectar dispositivos sem fio à Internet, através de encriptação WPA-PSK.
Descrição original do autor, em Inglês: A small C code called "2wireless" to connect wireless device to the internet trought WPA-PSK encryption only.
#include <stdio.h> #include <stdlib.h> #include <errno.h> #define MAX 100 FILE *custom_path_out; char custom_path_output[MAX] = "/var/tmp/custom"; char default_path[MAX] = "/etc/wpa_supplicant/default.conf"; int associate(){ FILE *wireless_conf; char ssid[MAX]; char pass[MAX]; char cmd[MAX]; char op_path[1]; char custom_path[MAX]; printf("Network ssid: "); scanf("%s[^\n]",ssid); printf("Network password: "); scanf("%s[^\n]",pass); printf("Custom path file (y/n): "); scanf("%s[^\n]",op_path); if(op_path[0] == 'y') { printf("Path (with name file): "); scanf("%s[^\n]",custom_path); wireless_conf = fopen(custom_path,"w"); sprintf(cmd,"wpa_passphrase %s %s > %s",ssid,pass,custom_path); system(cmd); printf("Wireless conf file at: %s\n",custom_path); custom_path_out = fopen(custom_path_output,"w"); fprintf(custom_path_out,"%s\n",custom_path); fclose(wireless_conf); fclose(custom_path_out); } if(op_path[0] == 'n') { wireless_conf = fopen(default_path,"w"); sprintf(cmd,"wpa_passphrase %s %s > %s",ssid,pass,default_path); system(cmd); printf("Wireless default file at: %s\n",default_path); fclose(wireless_conf); } } int connect_wireless(){ FILE *wpa; char opt_path[1]; char custom_path2[MAX]; char iface[MAX]; char cmd[MAX]; char cmd2[MAX]; if((wpa = fopen("/usr/bin/wpa_supplicant","rb")) == NULL) { fprintf(stderr,"ERROR: install wpa_supplicant package: %s",strerror(errno)); } else { printf("Connect throught default/custom file (d/c): "); scanf("%s",opt_path); if(opt_path[0] == 'd') { printf("Interface: "); scanf("%s",iface); sprintf(cmd,"wpa_supplicant -B -c %s -i %s\n",default_path,iface); system(cmd); sprintf(cmd2,"dhcpcd %s",iface); if((system(cmd2)) == 0) { printf("\nSucessfully connected!\n"); } } if(opt_path[0] == 'c') { custom_path_out = fopen(custom_path_output,"r"); fscanf(custom_path_out,"%s",custom_path2); printf("Interface: "); scanf("%s",iface); sprintf(cmd,"wpa_supplicant -B -c %s -i %s\n",custom_path2,iface); system(cmd); sprintf(cmd2,"dhcpcd %s",iface); if((system(cmd2)) == 0) { printf("\nSucessfully connected!\n"); } fclose(custom_path_out); } } } int main(void){ int continua = 0; printf("\n0 (Exit) \n1 (Wireless WPA-PSK Association) \n2 (Connect Wireless)\n3 (About)\n\n"); while(continua >= 0) { printf("[2wireless]# "); scanf("%d",&continua); switch(continua) { case 0: exit(0); case 1: associate(); break; case 2: connect_wireless(); break; case 3: printf("\nThis is a small C code to connect wireless device to the internet trought WPA-PSK encryption only.\n"); printf("2wireless Developed by Cristhoffer Corrêa.\n"); break; default: continue; } } return 0; }
HtmlPageDown - Baixe páginas HTML (cURL)
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
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
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
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
Desenvolvimento de um driver (10)
Não esta salvando as configurações de usuário. (3)
Quais Shell Scripts vocês usam? (5)
[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