En este tutorial, aprenderás a usar Python 3 para crear un bot IRC. IRC es un acrónimo de Internet Relay Chat, que es una forma popular de comunicación para enviar mensajes de texto a través de la red.
¿Cómo usar Python para crear un bot IRC?
¿Qué es un IRC? Bot?
Un bot es un asistente virtual que emula a un usuario real para proporcionar respuestas instantáneas. IRC bot es un tipo de cliente de red que puede ser un script o un programa que puede retransmitir mensajes usando el protocolo IRC.
Cuando un usuario activo recibe un texto del bot IRC, se le presenta como otro usuario real. [19659007] ¿Qué puede hacer un Bot?
Los bots imitan a un usuario real y se comunican con otros clientes activos. Sin embargo, pueden realizar una variedad de tareas:
- Archivar mensajes de chat
- Se pueden analizar feeds de Twitter
- Rastrear la web para una palabra clave
- Ejecutar cualquier comando si es necesario.
Cómo implementar el IRC en Python ?
Para esto, necesitaremos un programa Python que cree un socket de cliente para conectarse al servidor IRC. El servidor IRC realiza una verificación simple y se conecta sin mucha molestia.
La secuencia de comandos utiliza la biblioteca de sockets Python para permitir la comunicación de la red. Verifique el código de muestra a continuación.
importar socket ircbot = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
El protocolo IRC es solo una capa sobre el protocolo IP y funciona sobre la pila TCP / IP.
Necesitaremos nuestro programa para intercambiar lo siguiente conjunto de comandos.
** Autenticación **** USUARIO botname botname botname: text NICK botname NICKSERV IDENTIFICAR botnickpass botpass ** Unirse al canal **** UNIR
Código fuente del bot
Archivo de clase:
Primero, debe crear una clase de bot IRC. Copie el siguiente código y péguelo en un archivo y guárdelo como irc_class.py.
import socket sistemas de importación tiempo de importación clase IRC: irc = socket.socket () def __init __ (self): # Definir el zócalo self.irc = socket.socket (socket.AF_INET, socket.SOCK_STREAM) def enviar (auto, canal, msg): # Transferir datos self.irc.send (bytes ("PRIVMSG" + canal + "" + msg + " n", "UTF-8")) def connect (auto, servidor, puerto, canal, botnick, botpass, botnickpass): # Conectarse al servidor imprimir ("Conectando a:" + servidor) self.irc.connect ((servidor, puerto)) # Realizar autenticación de usuario self.irc.send (bytes ("USUARIO" + botnick + "" + botnick + "" + botnick + ": python n", "UTF-8")) self.irc.send (bytes ("NICK" + botnick + " n", "UTF-8")) self.irc.send (bytes ("NICKSERV IDENTIFY" + botnickpass + "" + botpass + " n", "UTF-8")) time.sleep (5) # únete al canal self.irc.send (bytes ("UNIR" + canal + " n", "UTF-8")) def get_response (self): time.sleep (1) # Obtener la respuesta resp = self.irc.recv (2040) .decode ("UTF-8") si resp.find ('PING')! = -1: self.irc.send (bytes ('PONG' + resp.split (). decode ("UTF-8") [1] + ' r n', "UTF-8")) return resp
Después de crear la clase de comunicación de red, importaremos t en nuestro cliente y utilizaremos su instancia. Estamos diseñando un cliente de demostración para que lo entiendas fácilmente.
Nuestro bot enviará el mensaje "¡Hola!" Mientras responde a un mensaje de "Hola" en el canal.
Guión del cliente:
Debajo del Programa Python IRC Bot para iniciar la comunicación con el cliente. Cree un nuevo archivo, copie el código, péguelo y guárdelo como irc_bot.py.
El servidor IRC generalmente se ejecuta en puertos como 6667 o 6697 (IRC con SSL). Por lo tanto, usaremos “6667” en nuestra muestra. Además, deberá proporcionar una dirección IP del servidor IRC o un nombre de host válidos para que este programa se ejecute correctamente.
from irc_class import * importación os importar al azar ## Config de IRC server = "10.x.x.10" # Proporcionar un IP / nombre de host del servidor válido puerto = 6697 channel = "#python" botnick = "techbeamers" botnickpass = "guido" botpass = "<%= @guido_password %>" irc = IRC () irc.connect (servidor, puerto, canal, botnick, botpass, botnickpass) mientras que True texto = irc.get_response () imprimir (texto) si "PRIVMSG" en texto y canal en texto y "hola" en texto: irc.send (canal, "Hello!")
Ten en cuenta que puedes ejecutar el programa anterior usando el siguiente comando:
python irc_bot.py
Hope, el tutorial anterior podría ayudarte a construir un complejo IRC bot con más funciones y uso.
Si deseas aprender la programación de Python desde cero, lee este Tutorial de Python .
No comments:
Post a Comment