#include #include #include #include #include #include /*used for gethostbyname()*/ #include #include void manda_irc(char *buffer,int sock) { send(sock, buffer, strlen(buffer),0); } /* void print_motd (int out) { FILE *f; char buffer[256]; if ((f=fopen(cbot.motd,"r"))) { while (fgets(buffer, sizeof(buffer), f)) printf("%s", buffer); fclose(f); } } */ int main(int argc,char *argv[]) { int sd, i=0; int fd; char c,b; struct hostent* hp; struct sockaddr_in server_addr; /* la blablabla */ printf("\nzZBot - version 0.0001\n"); if(argc!=3) { printf("Uso: %s \n",argv[0]); exit(EXIT_FAILURE); } printf("...tratando %s:%s\n",argv[1],argv[2]); if((hp=gethostbyname(argv[1]))==NULL) { printf("ERROR: No pode conectar %s, abortando. \n",argv[1]); exit(EXIT_FAILURE); } server_addr.sin_family=AF_INET; server_addr.sin_port=htons((u_short)atoi(argv[2])); server_addr.sin_addr.s_addr=((struct in_addr *)hp->h_addr_list[0])->s_addr; //server_addr.sin_addr.s_addr=hp->h_addr_list[0]->s_addr; sd=socket(PF_INET,SOCK_STREAM,0); if(connect(sd,(struct sockaddr*)&server_addr,sizeof(server_addr))<0) { printf("Coneccion negada por servidor.\n"); perror("connect()"); exit(EXIT_FAILURE); } printf("Conectado.\n"); manda_irc("NICK TresPatines\r\n",sd); manda_irc("USER zZBot 8 * :zZBot Ver 0.0001\r\n",sd); /* 0 normal 8 invisible */ manda_irc("JOIN #debian-es\r\n",sd); manda_irc("PRIVMSG #debian-es :Debby: ping\r\n",sd); manda_irc("PRIVMSG #debian-es :Debby: ping\r\n",sd); manda_irc("PRIVMSG #debian-es :Debby: ping\r\n",sd); while (1) { recv(sd,&c,1,0); b=c; if (b) { printf("%c",b); } }; close(fd); send(sd,"QUIT :bye!\r\n",strlen("QUIT :bye!\r\n"),0); return 0; } $ gcc zZbot.c -o zZbot ... lol