elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Archivos temporales
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Archivos temporales  (Leído 1,974 veces)
Dumy

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Archivos temporales
« en: 18 Noviembre 2024, 20:35 pm »

Buenas, estoy intentando desarrollar un programa que crea un archivo temporal y guarda en el los ping que responden correctamente:

#define _CRT_NO_SECURE_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

#define MAX_SIZE 999

void nyuarchivo1(char* nyuadnsips) {

   printf("El archivo dnsips.txt ya ha sido creado, adivina acontinuacion nombre y ubicacion ");

   if (fgets(nyuadnsips, MAX_SIZE, stdin) == NULL) {

      printf("Mal, mal empezamos no se guardo ni el nombre ni la ubicacion");

      return;

   }

   nyuadnsips[strcspn(nyuadnsips, "\n")] = '\0';

   printf("El nombre que figura dentro de la cadena es: %s", nyuadnsips);
   printf("\n \n");

   FILE* archivo1 = fopen(nyuadnsips, "r");

   if (archivo1 == NULL) {

      printf("ERROR, el archivo realmente noe existe");

      return;

   }

   int c;

   while ((c=fgetc(archivo1)) != EOF) {

      putchar(c);

   }

   fclose(archivo1);
}

void adns(char* dns, char* primernetsh) {

   printf("¿Que adaptador de red que quiere modificar?");

   if (fgets(dns, MAX_SIZE, stdin) == NULL) {

      printf("Mal, mal empezamos no es un buen reciclaje");

      return;

   }

   dns[strcspn(dns, "\n")] = '\0';

   printf("El nombre que figura dentro de la cadena es: %s", dns);
   printf("\n \n");

   snprintf(primernetsh, MAX_SIZE, "netsh interface ip show dns name= \"%s\"",dns);
   
   int resultado=system(primernetsh);

}

void ccpings(char* cadena1, char* cadena2, char* cadena3, char* cadena4, char* ping1, char* ping2, char* ping3, char* ping4) {

   FILE* temporal = tmpfile();

   if (temporal == NULL) {

      printf("Primer archivo temporal fallido");

      return;

   }

   printf("AHORA, el siguiente paso   es hacer un ping a las IPs, para eso, hay que ponerlas en cadenas, despues sera necesario, usar la snetencia snprintf, otra vez, para construir los comandos pings que comprobaran cuales son viables, ¿OK? y si sera hacer la cadena y hacer el ping a esa cadena, no esperaremos a tenerlas todas, asi de esa manera trabajamos con ellas individualmente: ");

   printf("Cadena 1: ");

   if (fgets(cadena1, MAX_SIZE, stdin) == NULL) {

      printf("Mal, mal empezamos no es un buen reciclaje");

      return;

   }

   cadena1[strcspn(cadena1, "\n")] = '\0';

   printf("\n \n");
   printf("YYY  la  IP numero 1   essss: %s", cadena1);
   printf("\n \n");
   printf("Y Ahoora el piing");
   printf("\n \n");

   snprintf(ping1, MAX_SIZE, "ping -n 4 %s", cadena1);
   int valor1 = system(ping1);

   if (valor1 != 0) {

      fprintf(temporal, "%s", cadena1);
      
   }

   fclose(temporal);
}


int main() {

   
   char nyuadnsips[MAX_SIZE]="D:\\Dnsips.txt";
   char dns[MAX_SIZE];
   char primernetsh[MAX_SIZE];
   char cadena1[MAX_SIZE];
   char cadena2[MAX_SIZE];
   char cadena3[MAX_SIZE];
   char cadena4[MAX_SIZE];
   char ping1[MAX_SIZE];
   char ping2[MAX_SIZE];
   char ping3[MAX_SIZE];
   char ping4[MAX_SIZE];
   

   printf("\n");
   nyuarchivo1(nyuadnsips);
   printf("\n");
   adns(dns, primernetsh);
   ccpings(cadena1, cadena2, cadena3, cadena4, ping1, ping2, ping3, ping4);

   return 0;
}

Estoy buscando el archivo temporal en C: Windows Temp pero no me sale ningun archivo creado con el nombre temporal quisiera saber, ¿Mi codigo es correcto?, ¿Hay algo mal en la funcion ccpings, que haga que no se cree el archivo temporal?


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Archivos temporales
« Respuesta #1 en: 21 Noviembre 2024, 20:32 pm »

El archivo se crea, por ejemplo en mi caso en C:\Users\admin\AppData\Local\Temp\ pero es borrado en cuanto se llama a fclose.

The temporary file created is automatically deleted when the stream is closed (fclose) or when the program terminates normally.

Fuente: https://cplusplus.com/reference/cstdio/tmpfile/


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Dumy

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: Archivos temporales
« Respuesta #2 en: 25 Noviembre 2024, 18:51 pm »

Gracias por responderme,

Solo una ultima pregunta, tengo este codigo:

#define _CRT_NO_SECURE_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

#define MAX_SIZE 999

void nyuarchivo1(char* nyuadnsips) {

   printf("El archivo dnsips.txt ya ha sido creado, adivina acontinuacion nombre y ubicacion ");

   if (fgets(nyuadnsips, MAX_SIZE, stdin) == NULL) {

      printf("No se guardo ni el nombre ni la ubicacion");

      return;

   }

   nyuadnsips[strcspn(nyuadnsips, "\n")] = '\0';

   printf("El nombre que figura dentro de la cadena es: %s", nyuadnsips);
   printf("\n \n");

   FILE* archivo1 = fopen(nyuadnsips, "r");

   if (archivo1 == NULL) {

      printf("ERROR, el archivo realmente noe existe");

      return;

   }

   int c;

   while ((c = fgetc(archivo1)) != EOF) {

      putchar(c);

   }

   fclose(archivo1);
}

void adns(char* pings, char* dns, char* primernetsh) {

   snprintf(pings, MAX_SIZE, "ipconfig");

   system(pings);

   printf("¿Que adaptador de red que quiere modificar?");

   if (fgets(dns, MAX_SIZE, stdin) == NULL) {

      printf("Mal, mal empezamos no es un buen reciclaje");

      return;

   }

   dns[strcspn(dns, "\n")] = '\0';

   printf("El nombre que figura dentro de la cadena es: %s", dns);
   printf("\n \n");

   snprintf(primernetsh, MAX_SIZE, "netsh interface ip show dns name= \"%s\"", dns);

   int resultado = system(primernetsh);

}

void ccpings(char* cadena1, char* cadena2, char* cadena3, char* cadena4, char* ping1, char* ping2, char* ping3, char* ping4) {

   FILE* temporal = tmpfile();

   if (temporal == NULL) {

      printf("Primer archivo temporal fallido");

      return;

   }

   printf("El siguiente paso es hacer un ping a las IPs, por eso las pondremos en cadenas, despues usaremos la sentencia snprintf, para construir los comandos pings que comprobaran cuales son viables, sera hacer la cadena y hacer el ping a esa cadena, no esperaremos a tenerlas todas, asi de esa manera trabajamos con ellas individualmente: ");
   printf("\n");
   printf("Cadena 1: ");

   if (fgets(cadena1, MAX_SIZE, stdin) == NULL) {

      printf("Mal, mal empezamos no es un buen reciclaje");

      return;

   }

   cadena1[strcspn(cadena1, "\n")] = '\0';

   printf("\n \n");
   printf("YYY  la  IP numero 1   essss: %s", cadena1);
   printf("\n \n");
   printf("Y Ahoora el ping");
   printf("\n \n");

   snprintf(ping1, MAX_SIZE, "ping -n 4 %s", cadena1);
   int valor1 = system(ping1);

   if (valor1 != 0) {

      fprintf(temporal, "%s", cadena1);

      return;
   }
   printf("\n");
   printf("Cadena 2: ");

   if (fgets(cadena2, MAX_SIZE, stdin) == NULL) {

      printf("Mal, mal empezamos no es un buen reciclaje");

      return;

   }

   cadena2[strcspn(cadena2, "\n")] = '\0';

   printf("\n \n");
   printf("IP numero 2: %s", cadena2);
   printf("\n \n");
   printf("Y Ahoora el piing");
   printf("\n \n");

   snprintf(ping2, MAX_SIZE, "ping -n 4 %s", cadena2);
   int valor2 = system(ping2);

   if (valor1 != 0) {

      fprintf(temporal, "%s", cadena2);

      return;

   }
   printf("\n");
   printf("Cadena 3: ");

   if (fgets(cadena3, MAX_SIZE, stdin) == NULL) {

      printf("Mal, mal empezamos no es un buen reciclaje");

      return;

   }

   cadena3[strcspn(cadena3, "\n")] = '\0';

   printf("\n \n");
   printf("IP 3: %s", cadena3);
   printf("\n \n");
   printf("Y Ahoora el piiing");
   printf("\n \n");

   snprintf(ping3, MAX_SIZE, "ping -n 4 %s", cadena3);
   int valor3 = system(ping3);

   if (valor1 != 0) {

      fprintf(temporal, "%s", cadena3);

      return;

   }
   printf("\n");
   printf("Cadena 4: ");

   if (fgets(cadena4, MAX_SIZE, stdin) == NULL) {

      printf("Mal, mal empezamos no es un buen reciclaje");

      return;

   }

   cadena4[strcspn(cadena4, "\n")] = '\0';

   printf("\n \n");
   printf("IP 4: %s", cadena4);
   printf("\n \n");
   printf("Y Ahoora el piiiing");
   printf("\n \n");

   snprintf(ping4, MAX_SIZE, "ping -n 4 %s", cadena4);
   int valor4 = system(ping4);

   if (valor1 != 0) {
      printf("\n");
      fprintf(temporal, "%s", cadena4);
      printf("\n");
      return;

   }

   fclose(temporal);

}

void punto8(char* comandotracert1, char* comandotracert2, char* comandotracert3, char* comandotracert4, const char* cadena1, const char* cadena2, const char* cadena3, const char* cadena4) {

   printf("\n");
   printf("Acontinuacion compararemos als dices IP con un tracert: ");
   printf("\n");

   FILE* temporal = tmpfile();

   if (!temporal) {
      printf("\n");
      perror("entonces no hase falta decir nada mazss");
      printf("\n");
      return;

   }

   snprintf(comandotracert1, MAX_SIZE, "tracert %s", cadena1);
   system(comandotracert1);
   printf("\n");
   snprintf(comandotracert2, MAX_SIZE, "tracert %s", cadena2);
   system(comandotracert2);
   printf("\n");
   snprintf(comandotracert3, MAX_SIZE, "tracert %s", cadena3);
   system(comandotracert3);
   printf("\n");
   snprintf(comandotracert4, MAX_SIZE, "tracert %s", cadena4);
   system(comandotracert4);

   fclose(temporal);
}

void punto10a(const char* dns, char* ipr, char* mdrr, char* gwr) {

   printf("\n");
   printf("Introduce la nueva IP para tu adaptador de red");
   printf("\n");

   if (fgets(ipr, MAX_SIZE, stdin) == NULL) {

      printf("Error la direccion no se guardo");

      return;

   }

   ipr[strcspn(ipr, "\n")] = '\0';

   printf("La nueva ip que tendra el adaptador es: %s", ipr);
   printf("\n");

   printf("\n");
   printf("Introduce la nueva Mascara de Red para tu adaptador de red");
   printf("\n");

   if (fgets(mdrr, MAX_SIZE, stdin) == NULL) {

      printf("Error la direccion no se guardo");

      return;

   }

   mdrr[strcspn(mdrr, "\n")] = '\0';

   printf("\n");
   printf("La nueva Mascara de Red que tendra el adaptador es: %s", mdrr);
   printf("\n");

   printf("\n");
   printf("Introduce la nueva direccion de puerta de enlace predeterminada para tu adaptador de red: ");
   printf("\n");

   if (fgets(gwr, MAX_SIZE, stdin) == NULL) {

      printf("Error la direccion no se guardo");

      return;

   }

   gwr[strcspn(gwr, "\n")] = '\0';

   printf("\n");
   printf("La nueva Puerta de enlace que tendra el adaptador es: %s", gwr);
   printf("\n");

   

}

void punto10b(char* comandonetsh2, const char* dns, const char* ipr, const char* mdrr, const char* gwr) {

   snprintf(comandonetsh2, MAX_SIZE, "netsh interface ip set address name=\"%s\" static %s %s %s", dns, ipr, mdrr, gwr);

   printf("Ejecute el comando: %s\n", comandonetsh2);

   printf("\n");

   int resultado3 = system(comandonetsh2);

   if (resultado3 != 0) {

      printf("Error: el comando no es correcto\n");

   }



}


int main() {


   int resultado3;
   char nyuadnsips[MAX_SIZE] = "D:\\Dnsips.txt";
   char dns[MAX_SIZE];
   char primernetsh[MAX_SIZE];
   static char cadena1[MAX_SIZE];
   static char cadena2[MAX_SIZE];
   static char cadena3[MAX_SIZE];
   static char cadena4[MAX_SIZE];
   char ping1[MAX_SIZE];
   char ping2[MAX_SIZE];
   char ping3[MAX_SIZE];
   char ping4[MAX_SIZE];
   char pings[MAX_SIZE];
   char comandotracert1[MAX_SIZE];
   char comandotracert2[MAX_SIZE];
   char comandotracert3[MAX_SIZE];
   char comandotracert4[MAX_SIZE];
    static char ipr[MAX_SIZE];
   static char mdrr[MAX_SIZE];
   static char gwr[MAX_SIZE];
   char comandonetsh2[MAX_SIZE];

   printf("\n");
   nyuarchivo1(nyuadnsips);
   printf("\n");
   adns(pings, dns, primernetsh);
   printf("\n");
   ccpings(cadena1, cadena2, cadena3, cadena4, ping1, ping2, ping3, ping4);
   printf("\n");
   punto8(comandotracert1, comandotracert2, comandotracert3, comandotracert4, cadena1, cadena2, cadena3, cadena4);
   printf("\n");
   punto10a(dns, ipr, mdrr, gwr);
   punto10b(comandonetsh2, dns, ipr, mdrr, gwr);
   system("ipconfig");

   free(comandonetsh2);

   return 0;
}

Mi pregunta es: ¿De usar ese programa con mi adaptador Wi-Fi Funcionara y cambiara los parametros del adaptador W-Fi O hara que ese adaptador deje de funcionar?, esque me preocupa un poco hacer algo irremediable, si alguien que si sepa lo que hace pudiera mirarse las ultimas 2 funciones y decirme si pueod ejecutar el porgrama sin temor o si ve algo mal, lo agradeceria
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Archivos temporales
« Respuesta #3 en: 27 Noviembre 2024, 23:58 pm »

Busca en la ayuda de netsh, no depende del lenguaje de programacion al usar un programa externo.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Encontrar archivos de videos flahs en archivos temporales.
Multimedia
Akaronte 2 6,483 Último mensaje 21 Octubre 2008, 22:09 pm
por Novlucker
conseguir archivos temporales en Chrome
Dudas Generales
franfis 0 2,051 Último mensaje 5 Abril 2013, 02:01 am
por franfis
En que carpeta están los archivos temporales?
Dudas Generales
fokin 4 2,746 Último mensaje 12 Diciembre 2013, 16:15 pm
por naxo_valladolid
Archivos temporales OpenSUSE 13.1
GNU/Linux
Ja_90 2 3,198 Último mensaje 9 Noviembre 2014, 18:41 pm
por Ja_90
Almacenamiento de archivos temporales
Dudas Generales
New15change 4 2,332 Último mensaje 18 Abril 2017, 01:42 am
por New15change
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines