Si ha estado en Internet Relay Chat (IRC), es probable que haya encontrado un bot en algún momento. Los bots son programas o scripts independientes que se conectan a una red de la misma manera que lo haría un humano. Se pueden programar para responder a los comandos del usuario o incluso para chatear. En esta guía, puede encontrar cuáles son sus opciones para construir un bot de IRC, así como también cómo construir uno desde cero.
Pasos
Método 1 de 2: Evaluación de opciones
- 1 Considere instalar un script de cliente. A veces, solo desea realizar una tarea simple y no desea que sea un programa independiente. En ese caso, puede adjuntar un script a un cliente de IRC. Es bastante común hacer con mIRC , que tiene un motor de secuencias de comandos robusto y una amplia variedad de secuencias de comandos disponibles. Esta es la opción más fácil y muy recomendable si no tiene mucha o ninguna experiencia en programación. Para el resto de esta guía, las instrucciones requieren cierto conocimiento de programación de computadoras.
- 2 Considere una base de código preexistente para su bot. Existen muchos programas de código abierto y gratuitos que pueden ayudarlo a configurar su propio bot personalizado rápidamente. Un ejemplo es Eggdrop , el bot de IRC más antiguo aún se mantiene.
- 3 Considere escribir su propio bot. Para los usuarios y desarrolladores avanzados de IRC que ya conocen un lenguaje de programación, esta es una gran opción. Puede usar prácticamente cualquier lenguaje que desee siempre que tenga soporte para socket, pero los más populares incluyen Python, Lua, PHP, C y Perl. Si no conoce ninguno de estos, pero sí conoce otro idioma, eso no es un problema. Por lo general, puede encontrar ejemplos en la web en el idioma que desee. Para este artículo, demostraremos el uso de PHP. Para usar PHP, necesitará tener PHP-CLI instalado en su computadora o servidor.
- PHP se puede descargar desde php.net
- Los scripts PHP se pueden ejecutar desde la línea de comandos. Para obtener información adicional y ayuda sobre el uso de PHP, consulte esta página de manual de PHP .
Método 2 de 2: Desarrollando su propio bot
- 1 Reúna los detalles de la conexión. Deberá obtener la siguiente información para conectarse correctamente a la red.
- Servidor : El nombre de dominio del servidor utilizado para conectarse a IRC, como
chat.freenode.net
- Puerto : En la mayoría de los casos, es 6667, pero si no está seguro, consulte su propio cliente de IRC o el sitio web de la red.
- Apodo : El apodo que debe usar tu bot. Tenga en cuenta que, por lo general, no se permiten algunos caracteres especiales (@ #! ~).
- Ident : El campo de identificación aparece después del apodo cuando alguien realiza un WHOIS como este:
nickname!ident@hostname
- GECOS : Este campo normalmente contiene el nombre real de un usuario o una descripción general del bot, pero puedes poner lo que quieras ahí.
- Canal : Por lo general, desea que su bot esté presente en uno o más canales. En la mayoría de las redes, estos tienen el prefijo '#', pero podría ser otra cosa.
- Servidor : El nombre de dominio del servidor utilizado para conectarse a IRC, como
- 2 Inicialice la configuración en su secuencia de comandos. La forma más básica de hacer esto es nombrar algunas variables de acuerdo con los nombres de configuración anteriores. También puede almacenarlos en un archivo de configuración y analizarlos, pero por ahora solo nos quedaremos con las necesidades absolutas.
- 3 Conéctese a la red. Para hacer esto, deberá abrir un socket al servidor en el puerto especificado. También debe agregar algún código de manejo de errores en esta parte en caso de que la conexión falle por cualquier motivo. En este caso, PHP nos proporciona algunas funciones interesantes para manejar el error de manera efectiva.
- 4 Registre su bot. Esto significa proporcionar su apodo, identificador y GECOS al servidor, no registrarse con NickServ. Para hacer esto, simplemente escriba los comandos NICK y USER en el servidor, seguidos de un retorno de carro y una nueva línea. Es imperativo que lo haga exactamente como se muestra, porque así es como se especifica en RFC1459, la especificación para el protocolo IRC.
- Tenga en cuenta que los dos parámetros del medio (en este caso, * y 8) deben especificarse, pero el servidor los ignora. Esos dos solo se utilizan entre servidores vinculados, no por un cliente que se conecta directamente.
- 5 Siga obteniendo datos del socket mediante un bucle. Si no usó un bucle, su script terminaría inmediatamente y el bot sería básicamente inútil. Para mantenerse conectado, debe obtener datos del servidor, verificar cualquier entrada en la transmisión que desee y responder si es así. Aquí, estamos obteniendo datos usando socket_read () para capturar cualquier dato disponible para nosotros. Si lo hay, seguimos haciendo lo que sea que esté en el ciclo. También puede ser útil enviar los datos sin procesar a la consola para que pueda ver lo que está sucediendo desde la perspectiva del bot.
- 6 Escribe un controlador de ping. Esto es importante. Si no responde a los pings de manera oportuna, el servidor lo desconectará. Primero, ocupémonos de eso. Los pings se ven así cuando se envían desde el servidor:
PING :rajaniemi.freenode.net
. El servidor no tiene que poner su nombre después del ':', puede suministrar lo que quiera. Debe * repetir exactamente lo que dijo el servidor, excepto usando PONG. - 7 Únase a sus canales. Bien, tenemos un bot que se conecta a la red y responde a los pings, pero por lo demás no hace nada. Para que la gente vea y use su bot, debe estar en un canal (de lo contrario, tendría que decirle que responda a mensajes privados).
- Para hacer esto, buscaremos los códigos de estado del servidor 376 o 422. 376 significa que el MOTD (mensaje del día) finalizó. 422 significa que no había ningún MOTD para enviar. Ese MOTD es solo algo que el servidor envía cuando te conectas, pero es un buen indicador de cuándo podemos comenzar a unir canales.
- Deberá emitir un comando JOIN. Este comando puede ir seguido de uno o más canales separados por una coma.
- Note que los datos que envía el servidor están convenientemente delimitados por espacios. De esta manera podemos dividir los datos y hacer referencia a ellos usando un índice de matriz.
- 8 Responder a los mensajes del canal. Ahora viene la parte divertida. Tu bot se unió al canal, así que ahora puedes usarlo para lo que quisieras. Creemos un comando de ejemplo llamado @moo.
- Tenga en cuenta el desplazamiento donde comienzan los mensajes (esto se aplica tanto a los canales como a los mensajes privados). Siempre está en el mismo lugar.
- Puede manejar comandos con espacios en ellos empalmando los datos fragmentados nuevamente ($ d). Eso está más allá del alcance de este artículo.
- Si el objetivo es un canal (como # botters-test), responde a eso. Si es un mensaje privado, ¡este bit será el apodo de tu bot! Luego debe responder usando el apodo del remitente, no el suyo (de lo contrario, estaría hablando solo, y eso es una tontería).
- 9 Extiende tu bot. Puede agregar muchas funciones nuevas utilizando la implementación anterior. Hay muchos otros comandos que se pueden enviar a la red IRC, como administrar operaciones, patear y prohibir, establecer el tema, entre muchas otras características. Anuncio
Preguntas y respuestas de la comunidad
Buscar Agregar nueva pregunta- Pregunta Después de agregarlos en el bloc de notas +, ¿dónde agrego estos códigos? volando 8lack Colóquelos en un servidor web (como Apache) que admita PHP. Puede instalar XXAMP en su computadora local o alojarlos en otro servidor web.
Anuncio
Consejos
- Puede producir el resultado del comando '/ me' prefijando sus mensajes de esta manera:
- PRIVMSG #canal: 001ACCIÓN texto aquí 001 .
- 001 significa el carácter ASCII 1 y se interpretará como tal en una cadena PHP entre comillas dobles. Alternativamente, puede utilizar
chr(1)
fuera de la cuerda.
- Los colores se pueden producir en un mensaje con el prefijo ' 003' (código ASCII 3) seguido de un número para un color. 0 = blanco, 1 = negro, 2 = azul, 3 = verde, 4 = rojo [...]. Ver mIRC página de para más colores.
- Como una cuestión de cortesía, obtenga el consentimiento de los propietarios del canal y los operadores de IRC antes de poner su bot en línea. No todas las redes y canales tienen una política de bienvenida hacia los bots, incluso los que se comportan bien.
- Algunos demonios de IRC van más allá de las especificaciones del protocolo e implementan otras características. Si lo está preparando para una red específica, ciertamente puede hacer uso de esas funciones si conoce su protocolo. Sin embargo, si desea que su bot se implemente en varias redes, intente mantenerlo en lo que está en el RFC.
Anuncio Enviar una sugerencia Todos los envíos de sugerencias se revisan cuidadosamente antes de ser publicados ¡Gracias por enviar una sugerencia para su revisión!