Automatizando configuração do wpa_supplicant (2wireless)

Publicado por Perfil removido (última atualização em 21/06/2016)

[ Hits: 4.272 ]

Download 2wi.c




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.

  



Esconder código-fonte

#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;
}

Scripts recomendados

HtmlPageDown - Baixe páginas HTML (cURL)

Potenciaçao

ripmime

Interface gráfica para o Skype Web

Servidor de arquivos (Cliente/servidor)


  

Comentários
[1] Comentário enviado por removido em 12/06/2016 - 23:31h

Nova versão: http://exp0sed.esy.es/C/2wireless/2w-0.60.c
http://exp0sed.esy.es/C/2wireless/2w-0.60_unix.c
--
Just bring us some beers, and then we can talk about our systems. :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts