#include #include #define server "irc.rohitab.com" #define port 6667 #define nick "xxRadKid" #define chan "#rohitab" char buff[990000]; char buff2[4096]; char tmp[4096]; char *pointer; char *message; char *join; char *skip; char name[]="Jarhead"; //char password[]="lolzitsabot"; int main() { WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKADDR_IN sin; sock = socket(AF_INET, SOCK_STREAM, 0); struct hostent host; host = *(struct hostent *) gethostbyname (server); memset (&sin, 0, sizeof sin); sin.sin_family = AF_INET; sin.sin_addr.s_addr = ((struct in_addr *) (host.h_addr))->s_addr; sin.sin_port = htons (port); if (connect (sock, &sin, sizeof sin) == SOCKET_ERROR) return INVALID_SOCKET; memset(tmp,0,255); sprintf(tmp,"USER %s \"\" \"127.0.0.1\" :%s\r\n",nick,nick); send(sock,tmp,strlen(tmp),0); memset(tmp,0,255); //sprintf(tmp,"MODE %s +b\r\n",nick); //send(sock,tmp,strlen(tmp),0); //memset(tmp,0,255); sprintf(tmp,"NICK %s\r\n",nick); send(sock,tmp,strlen(tmp),0); memset(tmp,0,255); Sleep(100); sprintf(tmp,"JOIN %s\r\n",chan); send(sock,tmp,strlen(tmp),0); Sleep(100); printf("Join Successful\n"); memset(tmp,0,255); Sleep(1000); //sprintf(tmp,"PRIVMSG nickserv :identify %s\r\n",password); //send(sock,tmp,strlen(tmp),0); //memset(tmp,0,255); //Sleep(10); memset(buff,0,4096); while(recv(sock, buff, sizeof buff, 0) > 0) { printf(buff); //to find out wat the shit is going wrong //Make so it replys to the chan the command is in. strcpy(buff2, buff); pointer = strtok(buff2," "); pointer = strtok(NULL, " "); pointer = strtok(NULL, " "); if(pointer != NULL){ strcpy(chan, pointer);} memset(buff2,0,4096); free(pointer); if(strncmp(buff, "PING", 4) == 0) { buff[1] = 'O'; send(sock, buff, 4, 0); memset(buff,0,4096); continue; } // Test Command, just to make sure its all working....:P if (strstr(buff,"*test")!=NULL) { sprintf(tmp, "privmsg %s :w00t\r\n", chan); send(sock,tmp,strlen(tmp),0); memset(buff,0,4096); } //Notice Command usage *notice if (strstr(buff,"*notice")!=NULL) { pointer = strtok(buff, "*"); pointer = strtok(NULL," "); pointer = strtok(NULL,"\r\n"); message = strtok(pointer, " "); message = strtok(NULL, "\r\n"); sprintf(tmp, "notice %s :%s\r\n",pointer ,message); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); memset(buff,0,4096); free(pointer); } //Kick Command usage *kick if (strstr(buff,"*kick")!=NULL) { pointer = strtok(buff, "*"); pointer = strtok(NULL," "); pointer = strtok(NULL,"\r\n"); sprintf(tmp, "KICK %s %s\r\n",chan ,pointer); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); memset(buff,0,4096); free(pointer); } //Join Command uasge *join if (strstr(buff,"*join")!=NULL) { pointer = strtok(buff, "*"); pointer = strtok(NULL," "); pointer = strtok(NULL,"\r\n"); sprintf(tmp, "JOIN %s\r\n",pointer); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); memset(buff,0,4096); free(pointer); } //Whois Query usage *whois /*if (strstr(buff,"*whois")!=NULL) { if (buff[0]==':'){ skip = buff+1; } pointer = strtok(skip,"!"); message = strtok(NULL,"*"); message = strtok(NULL," "); message = strtok(NULL,"\r\n"); //puts(pointer); //puts(message); sprintf(tmp, "WHOIS %s\r\n",message); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); recv(sock, buff, sizeof(buff),0); puts(buff); printf("%d\n",strlen(buff)); sprintf(tmp,"PRIVMSG %s :%s\r\n",pointer,buff); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); memset(buff,0,4096); }*/ //Private Message, usage *pm if (strstr(buff,"*pm")!=NULL) { pointer = strtok(buff, "*"); pointer = strtok(NULL," "); pointer = strtok(NULL,"\r\n"); message = strtok(pointer, " "); message = strtok(NULL, "\r\n"); sprintf(tmp, "privmsg %s :%s\r\n",pointer ,message); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); memset(buff,0,4096); free(pointer); } //Quit Section usage *quit if (strstr(buff,"*quit")!=NULL) { pointer = strtok(buff, "*"); pointer = strtok(NULL," "); pointer = strtok(NULL,"\r\n"); message = strtok(buff, "!"); if (message[0]==':'){ skip = buff+1; } puts(skip); if(strstr(skip,name)!=NULL){ if (strstr(pointer,"die")!=NULL) { sprintf(tmp, "QUIT Cyaz\r\n"); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); memset(buff,0,4096); free(pointer); } if (strstr(pointer,"part")!=NULL) { sprintf(tmp, "PART %s\r\n",chan); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); memset(buff,0,4096); free(pointer); } } else { sprintf(tmp, "privmsg %s :Auth Required\r\n", skip); send(sock,tmp,strlen(tmp),0); memset(tmp,0,4096); memset(buff,0,4096); } //End Quit Section } } Sleep(100); WSACleanup(); }