[C] Irc-Bot Simple

Iniciado por Jhonjhon_123, Febrero 23, 2010, 07:34:10 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 23, 2010, 07:34:10 PM Ultima modificación: Febrero 08, 2014, 06:16:42 PM por Expermicid
Se podria decir que esta en face beta de la beta =P ... solo conecta al servidor y canal indicado... se deben modificar los datos en el codigo fuente para otro servidor... solo lo dejo como muestra de como realizar la conexion ... ^-^ , haber si alguien se anima a darle propiedades de troyano u botnet jeje...

Código: c
/************************/
/** Coded By: S[e]C         **/
/** Date      : 2009          **/
/** *********************/
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <winsock2.h>

#define PORT 6667
#define SERVER "irc.freenode.net"

int sock;

int main(void)
{
    WSADATA wsa_;
    SOCKET sock;
    struct hostent *host;
    struct sockaddr_in direc;
    char buffer[8192];
    char peticion1[]="NICK Txus_\r\n";
    char peticion2[]="USER Bot_Txus\r\n";
    char peticion3[]="JOIN #txus_sala\r\n";
    int len1=strlen(peticion1),len2=strlen(peticion2),len3=strlen(peticion3);
    int i;   
    WSAStartup(MAKEWORD(2,2),&wsa_);
    host=gethostbyname(SERVER);
    sock=socket(AF_INET,SOCK_STREAM,0);
    if(sock==-1)
    {
      fprintf(stdout,"Error al crear socket\n");
      return (-1);
    }
   
    direc.sin_family=AF_INET;
    direc.sin_port=htons(PORT);
    direc.sin_addr=*((struct in_addr *)host->h_addr);
    memset(direc.sin_zero,0,8);
   
    if (connect(sock, (struct sockaddr *)&direc,sizeof(struct sockaddr)) == -1)
    {
              fprintf(stdout,"Error al conectar al servidor\n");
              return (-1);
    }
            send(sock, peticion1, len1, 0);
            printf("Sent nick\n");
            send(sock, peticion2, len2, 0);
            printf("Sent user id\n");
            send(sock, peticion3, len3, 0);
            printf("Joining Channel\n");
    i=0;
    do
    {
        i = recv(sock, buffer, sizeof(buffer), 0);       
        fprintf(stdout,"%s",buffer);       
    } while (i != 0);
    getch();
    return 0;   
}


PD: Olvide decir, yo programo para windows normalmente... jeje =P

PD2: Esta probado compilado con Dev-cpp 4.9.9.2 y se debe agregar la siguiente linea al linker -lwsock32.

Saludos!
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta