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...
/************************/
/** 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!