Automatizando configuração do wpa_supplicant (2wireless)
Publicado por Perfil removido (última atualização em 21/06/2016)
[ Hits: 4.271 ]
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; }
Automatizando configuração e conexão wireless
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (6)