コード例 #1
0
ファイル: ESP8266.cpp プロジェクト: amchugh/esp8266
int ESP8266::connectWifi(char *ssid, char *password)
{
  
  strcpy(_ssid, ssid);
  strcpy(_password, password);
  
  // set the access point value and connect
  wifi.print(F("AT+CWJAP=\""));
  wifi.print(ssid);
  wifi.print(F("\",\""));
  wifi.print(password);
  wifi.println(F("\""));
  delay(100);
  if(!searchResults("OK", 30000, _debugLevel)) {
    return WIFI_ERR_CONNECT;
  }
  
  // enable multi-connection mode
  if (!setLinkMode(1)) {
    return WIFI_ERR_LINK;
  }
  
  // get the IP assigned by DHCP
  getIP();
  
  // get the broadcast address (assumes class c w/ .255)
  getBroadcast();
  
  return WIFI_ERR_NONE;
}
コード例 #2
0
ファイル: subredes.c プロジェクト: RalphMarks/Nidia-
void main(int argc, char *argv[]){
	j = fopen("ips.json","w");
	if(argc != 4){
		sprintf(json + strlen(json),"{\n\"Error\": \"Faltan o sobran argumentos\"\n}");
	    		fputs(json,j);
	    		fclose(j);
	}else{
		char ip[16];
		char clase, opcion;
		int num = atoi(argv[3]);
		char tipo[10];
		f = fopen("red.txt","w");
		sprintf(ip,"%s",argv[1]);
		opcion = argv[2][0];
		separaIP(ip);
		fprintf(f,"Dirección IP: %d.%d.%d.%d\n",IP[0],IP[1],IP[2],IP[3]);
		clase = getClase();
		if(clase == 'A' || clase == 'B' || clase == 'C'){	
			sprintf(tipo,"%s",getTipo(clase));
			fprintf(f,"Tipo: %s\n", tipo);
			getDiRed();
			getBroadcast(0);
			sprintf(json,"{\n\"Red\": \"%d.%d.%d.%d\",\n\"Clase\": \"%c\",\n\"Primer IP\": \"%d.%d.%d.%d\",\n\"Mascara\": \"%d.%d.%d.%d\",\n\"Broadcast\": \"%d.%d.%d.%d\",\n\"Ultima IP\": \"%d.%d.%d.%d\",\n\"Default Gateway\": \"%d.%d.%d.%d\"",red[0],red[1],red[2],red[3],clase,red[0],red[1],red[2],red[3]+1,mascara[0],mascara[1],mascara[2],mascara[3],broadcast[0],broadcast[1],broadcast[2],broadcast[3],broadcast[0],broadcast[1],broadcast[2],broadcast[3]-1,broadcast[0],broadcast[1],broadcast[2],broadcast[3]-1);
			imprimeTabla(clase);
		}else{
			fprintf(f,"Clase: %c\n",clase);
		}
		switch(opcion){
			case 's':
				validaNumero(bitsNecesarios(num),clase);
				fprintf(f,"Se crearán %d subredes\n",(int)pow(2,bitsNecesarios(num)));
				getSubredes(bitsNecesarios(num),clase);
				break;
			case 'h':
				num += 2;
				getHosts(bitsNecesarios(num),clase);
				break;
			case '-':
				sprintf(json+strlen(json),"\n");
				fputs(json,j);
				break;
			default:
				sprintf(json + strlen(json),"{\n\"Error\": \"Argumento inválido\"\n}");
	    			fputs(json,j);
	    			fclose(j);
				exit(0);
		}
		fclose(f);
		strcat(json,"}");
		fputs(json,j);;
		fclose(j);
	}
}
コード例 #3
0
ファイル: subredes.c プロジェクト: RalphMarks/Nidia-
void getSubredes(char bits, char clase){
	unsigned char c,b,j;
	int aux_num,i;
	int mask = 255;
	switch(clase){
		case 'A':
			subred[0] = IP[0];
			c = 1;
			b = 24;
			break;
		case 'B':
			subred[0] = IP[0];
			subred[1] = IP[1];
			c = 2;
			b = 16;
			break;
		case 'C':
			subred[0] = IP[0];
			subred[1] = IP[1];
			subred[2] = IP[2];
			c = 3;
			b = 8;
	}
	getMascaraSubred(clase,bits);
	imprimeEncabezado();
	sprintf(json+strlen(json),",\n\"Subredes\": [\n");
	for(i=0; i<pow(2,bits); i++){
		aux_num = i << (b-bits);
		char z = 0;
		for(j = 3; j >= c; j--){
			subred[j] = (aux_num & mask)>>z;
			mask <<= 8;
			z += 8;
		}
		mask = 255;
		getBroadcast(1);
		if(i == pow(2,bits) -1)
			imprimeSubred(i,1);
		else
			imprimeSubred(i,0);
	}
	sprintf(json+strlen(json),"]\n");
}