Automatizando configuração do wpa_supplicant (2wireless)
Publicado por Perfil removido (última atualização em 21/06/2016)
[ Hits: 4.515 ]
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;
}
Interface gráfica para o Skype Web
Automatizando configuração e conexão wireless
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)









