1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
#undef BUFSIZ
#define BUFSIZ 8196
#define IP_SERVER "dns.irc.server"
#define PORT_SERVER 6667
#define PASS_SERVER "lepass"
#define CHAN "#Game"
#define PASS_CHAN "test"
#define BOT_NICK "Wait"
#define BOT_USER "gamesu"
#define BOT_MAIL "traning@hotmail.com"
#define BOT_HOST "irc.server"
#define BOT_REAL_NICK "nemekickpas"
extern DWORD WINAPI bot_main(LPVOID);
int main(){
ircconnect(IP_SERVER,PORT_SERVER);
}
int ircconnect(char *ip,int port){
char buffer[2048];
char buffe[2048];
char *ip_ircd = IP_SERVER;
char tmp[BUFSIZ];
char nick[BUFSIZ];
char user[BUFSIZ];
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET socketirc;
SOCKADDR_IN sin;
socketirc = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr(ip_ircd);
sin.sin_family = AF_INET;
sin.sin_port=htons(port);
int good=connect(socketirc, (SOCKADDR *)&sin, sizeof(sin));
if(good !=0)
{
printf("error sock irc");
system("PAUSE");
return 0;
}
else
{
sprintf(tmp, "%s %s\n", "PASS", PASS_SERVER);
send(socketirc, tmp, strlen(tmp), 0);
sprintf(nick, "%s %s\n","NICK", BOT_NICK);
send(socketirc, nick, strlen(nick), 0);
recv(socketirc, buffer, 2048, 0);
printf(buffer);
sprintf(user,"%s %s %s %s : %s\n","USER",BOT_USER,BOT_MAIL,BOT_HOST,BOT_REAL_NICK);
send(socketirc,user,strlen(user),0);
recv(socketirc, buffer, 2048, 0);
printf(buffer);
sprintf(tmp,"%s %s %s\n","MODE",BOT_NICK,"+i");
send(socketirc,tmp,strlen(tmp),0);
recv(socketirc, buffer, 2048, 0);
printf(buffer);
sprintf(tmp,"%s %s %s\n","JOIN",CHAN,PASS_CHAN);
send(socketirc,tmp,strlen(tmp),0);
recv(socketirc, buffer, 2048, 0);
printf(buffer);
while(1)
{
memset(buffer, '\0', 2048);
recv(socketirc, buffer, 2048, 0);
if(strstr(buffer, "PING :"))
{
char* tmp = strdup(buffer);
tmp = buffer + strlen("PING :") + 1;
sprintf(buffer, "PONG :%s\n", tmp);
send(socketirc, buffer, 0, 0);
printf(buffer);
}
}
return socketirc;
}
} |
Partager