All pastes #793825 Raw Edit

Mine

public text v1 · immutable
·published 2007-11-22 17:28 UTC
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