Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Søra en 22 Mayo 2010, 15:27 pm



Título: Ayuda de nuevo ahora si que estoy anonadado
Publicado por: Søra en 22 Mayo 2010, 15:27 pm
He estado buscando explicacion a un problema que tengo pero no se que narices le pasa imaginen yo tengo un archivo llamado Realmlist.wtf en el cual pone:

wowsulvus.no-ip.biz
exirn.servegame.com

y cuando ejecuto este codigo no me lee la primera linea pasa directamente a la segunda o.O'

Código
  1. #include <stdio.h>
  2. main()
  3. {
  4. printf(" _       _         _       _     ______         _               _     _ \n");
  5. printf("(_)  _  (_)       (_)  _  (_)   (______)       (_) _           (_)   (_)\n");
  6. printf("(_) (_) (_)  ___  (_) (_) (_)   (_)__    _   _  _ (_)__  _   _ (__)_ (_)\n");
  7. printf("(_) (_) (_) (___) (_) (_) (_)   (____)  (_)_(_)(_)(____)(_) (_)(_)(_)(_)\n");
  8. printf("(_)_(_)_(_)(_)_(_)(_)_(_)_(_)   (_)____   (_)  (_)(_)   (_)_(_)(_)  (__)\n");
  9. printf(" (__) (__)  (___)  (__) (__)    (______)(_) (_)(_)(_)    (___) (_)   (_)\n");
  10. printf("-----------------------------------------------------------------By Sora\n");
  11. printf("Comprobando disponibilidad de realmlists:\n");
  12. printf("------------------------------------------------------------------------\n");
  13. printf("------------------------------------------------------------------------\n");
  14.  
  15.   char bufferealm[40];
  16.   FILE *pf;
  17.   pf = fopen("Realmlist.wtf","r+");
  18.   if (pf==NULL) {
  19.       printf("No has configurado WEL debes ejecutar el archivo Configure.exe");
  20.   }
  21.  
  22.   while (fgets(bufferealm,40,pf) != NULL);
  23.   {
  24.  
  25.      char buffer[50];
  26.      sprintf(buffer, "ping -w 4 %s", bufferealm);
  27.      if (system(buffer) == 0) {
  28.         FILE *df;
  29.         df = fopen("C:\\Archivos de programa\\World of warcraft\\Data\\esES\\realmlist.wtf","w");
  30.         char buffertres[50];
  31.         sprintf(buffertres,"set realmlist %s",bufferealm);
  32.         fprintf(df,"%s",buffertres);
  33.         printf("------------------------------------------------------------------------\n");
  34.         printf("------------------------------------------------------------------------\n");
  35.         printf("%s esta encendido y el realmlist ya esta cambiado\n",&bufferealm);
  36.  
  37.         printf("Lanzando paginas de votos...\n");
  38.         system("firefox http://www.google.es");
  39.         system("firefox http://www.google.es");
  40.         printf("------------------------------------------------------------------------\n");
  41.         printf("------------------------------------------------------------------------\n");
  42.  
  43.  
  44.         printf("Lanzando World Of Warcraft\n");
  45.         execl("C:\\Archivos de prorgama\\World of Warcraft\\Wow.exe","Wow.exe",0);
  46.         return 0;}
  47.  
  48.         else {
  49.         printf("%s se encuentra apagado WEL pasara al siguiente realmlist\n",&bufferealm);
  50.  
  51.           }
  52.    }
  53.  
  54.  
  55.  
  56. }

Espero que no les resulten muy pesadas mis preguntas..

Saludos Søra.


Título: Re: Ayuda de nuevo ahora si que estoy anonadado
Publicado por: nicolas_cof en 22 Mayo 2010, 19:53 pm
Aca te dejo el codigo con algunas modificaciones, por lo menos en la ejecucion anda todo bien!
Lo que si, para usar la funcion execl(), tengo entendido que tenes que incluir la libreria unistd.h (no se si sera asi en Windows).

Código:
#include <stdio.h>
#include <string.h>

int
main( void )
{
char bufferealm[40];
FILE *pf;

pf = fopen( "Realmlist.wtf", "r+" );
if ( pf == NULL )
{
printf( "No has configurado WEL debes ejecutar el archivo Configure.exe" );
return -1;
}

while ( fgets( bufferealm, 40, pf ) != NULL )
{
char buffer[50];
bufferealm[strlen( bufferealm ) - 1] = '\0';
sprintf( buffer, "ping -w 4 %s", bufferealm );
if ( system( buffer ) == 0 )
{
FILE *df = fopen( "realmlist.wtf", "w" );
if ( df != NULL )
{
char buffertres[50];
sprintf( buffertres, "set realmlist %s", bufferealm );
fprintf( df, "%s", buffertres );
printf( "------------------------------------------------------\n"
"------------------------------------------------------\n"
"%s esta encendido y el realmlist ya esta cambiado\n", bufferealm );

printf( "Lanzando paginas de votos...\n" );
//system( "firefox http://www.google.es" );
//system( "firefox http://www.google.es" );
printf( "------------------------------------------------------\n"
"------------------------------------------------------\n"
"Lanzando World Of Warcraft\n" );
//execl( "C:\\Archivos de prorgama\\World of Warcraft\\Wow.exe", "Wow.exe", 0 );

return 0;
}
else
return -1;
}
else
printf( "%s se encuentra apagado WEL pasara al siguiente realmlist\n\n\n", bufferealm );
}
}

Ejecucion del programa...
Código:
./Main
ping: unknown host exirn.servegame.com
exirn.servegame.com se encuentra apagado WEL pasara al siguiente realmlist


PING wowsulvus.no-ip.biz (94.23.240.155) 56(84) bytes of data.
64 bytes from ns209133.ovh.net (94.23.240.155): icmp_seq=1 ttl=52 time=277 ms
64 bytes from ns209133.ovh.net (94.23.240.155): icmp_seq=2 ttl=52 time=276 ms
64 bytes from ns209133.ovh.net (94.23.240.155): icmp_seq=3 ttl=52 time=277 ms
64 bytes from ns209133.ovh.net (94.23.240.155): icmp_seq=4 ttl=52 time=278 ms

--- wowsulvus.no-ip.biz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 276.769/277.876/278.838/0.735 ms
------------------------------------------------------
------------------------------------------------------
wowsulvus.no-ip.biz esta encendido y el realmlist ya esta cambiado
Lanzando paginas de votos...
------------------------------------------------------
------------------------------------------------------
Lanzando World Of Warcraft

Realmlist.wtf
Código:
exirn.servegame.com
wowsulvus.no-ip.biz

realmlist.wtf
Código:
set realmlist wowsulvus.no-ip.biz

Salu10.


Título: Re: Ayuda de nuevo ahora si que estoy anonadado
Publicado por: Søra en 23 Mayo 2010, 14:12 pm
Muchas gracias aunque tampoco esperaba que me hicieran el codigo pero gracias. Lo unico me puedes resolver un par de dudas con los arreglos:

Citar
bufferealm[strlen( bufferealm ) - 1] = '\0';

esto exactamente que hace??

Todo lo demas lo entiendo XD muchas gracias nicolas_cof.

Saludos Søra.


Título: Re: Ayuda de nuevo ahora si que estoy anonadado
Publicado por: Akai en 23 Mayo 2010, 14:46 pm
Código
  1. bufferealm[strlen( bufferealm ) - 1] = '\0';

lo que hace es que en el último carácter de la cadena bufferrealm, pone un \0, es decir, el carácter de final de cadena


Título: Re: Ayuda de nuevo ahora si que estoy anonadado
Publicado por: Søra en 23 Mayo 2010, 22:23 pm
Muchas gracias codigo 100% asimilado XD.

Saludos Søra.