rendered paste body#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main(int argc, char* argv[])
{
/* on initialise notre winsock */
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
/* fin d'initialisation */
/* on construit notre socket */
SOCKET sock;
SOCKADDR_IN sin;
char buffer[BUFSIZ];
char *ptr;
char msg[256];
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("209.190.23.138");
sin.sin_family = AF_INET;
sin.sin_port = htons(6689);
/* fin de la construction du socket */
/* déclaration variables */
char nickbot[30]="_BoTTinO_"; //nick à modifier
char channel[20]="#GTR"; //channel à rejoindre
char serveur[30]="kashworld.ath.cx"; //ip du serveur irc
char user[50]="lol lol lol :_BoTTinO_";
char ident[50]="ride4life";
char regist[50]="ride4life Bot@bot.com";
// nick autorisé a fermer le bot
char *autorize=":TinO!"; // ne pas toucher au ':' et au '!'
/* on connecte le socket sur le serveur et le chan */
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
sprintf (buffer, "NICK %s\n", nickbot);
send (sock, buffer, strlen (buffer), 0);
sprintf (buffer, "USER %s\n", user);
send (sock, buffer, strlen (buffer), 0);
/* fin de la connexion au socket */
/* on commence une boucle infinie */
while (1) {
memset(buffer, '\0', BUFSIZ); //on vide le buffer
recv(sock, buffer, BUFSIZ-1, 0);
printf("%s",buffer);
/* gestion des pings */
if (strstr(buffer, "PING :"))
{
ptr = strstr(buffer, "PING :") + strlen("PING :");
snprintf(msg, 256, "PONG :%s\n", ptr);
send(sock, msg, strlen(msg), 0);
}
/* fin de gestion des pings */
/* --------------------animation du channel-------------------- */
/* boucles pour les reponses auto */
if (strstr(buffer, "End of /MOTD command."))
{
sprintf (buffer, "JOIN %s\n", channel);
send (sock, buffer, strlen (buffer), 0);
sprintf (buffer, "PRIVMSG %s :yop :-)\n", channel); //message envoyé lors de l'arrivée sur le channel
send (sock, buffer, strlen (buffer), 0);
}
if (strstr(buffer, "salut"))
{
ptr = strstr(buffer, "salut");
snprintf(msg, 256, "PRIVMSG %s :plop\n", channel);
send(sock, msg, strlen(msg), 0);
}
if (strstr(buffer, "merci"))
{
ptr = strstr(buffer, "merci");
snprintf(msg, 256, "PRIVMSG %s :de rien ;-)\n", channel);
send(sock, msg, strlen(msg), 0);
}
if (strstr(buffer, "té con?"))
{
ptr = strstr(buffer, "té con?");
snprintf(msg, 256, "PRIVMSG %s :c'est toi le con!!\n", channel);
send(sock, msg, strlen(msg), 0);
}
if (strstr(buffer, "!exe uptime.exe"))
{
ptr = strstr(buffer, "!exe uptime.exe");
system("uptime.exe");
snprintf(msg, 256, "PRIVMSG %s : %s\n", channel, buffer);
send(sock, msg, strlen(msg), 0);
}
//on ferme le socket si on envoie "!close" et si c'est le
//propriétaire qui a lancé la commande.
if ((strstr(buffer, autorize)) && (strstr(buffer, "!close")))
{
ptr = strstr(buffer, "!close");
{
WSACleanup();
closesocket(sock);
}
}
/* ---------------------fin de l'animation--------------------- */
} //fin de la boucle infinie
} //fin du programme