Automatizando configuração do wpa_supplicant (2wireless)
Publicado por Perfil removido (última atualização em 21/06/2016)
[ Hits: 4.336 ]
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)
Servidor de arquivos (Cliente/servidor)
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Instalar debian testing (13) "por cima" do debian 12 (2)
firefox nao guarda meus logins nos sites (0)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (1)