Cómo desarrollar un bot de IRC: 12 pasos (con imágenes)

Tabla de contenido:

Cómo desarrollar un bot de IRC: 12 pasos (con imágenes)
Cómo desarrollar un bot de IRC: 12 pasos (con imágenes)

Video: Cómo desarrollar un bot de IRC: 12 pasos (con imágenes)

Video: Cómo desarrollar un bot de IRC: 12 pasos (con imágenes)
Video: Como recuperar una cuenta de facebook sin email o contraseña!! 2024, Abril
Anonim

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

Desarrollar un bot de IRC Paso 1
Desarrollar un bot de IRC Paso 1

Paso 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. Esto es bastante común con mIRC, que tiene un motor de scripting robusto y una amplia variedad de scripts disponibles. Esta es la opción más fácil y muy recomendable si no tienes mucha o ninguna experiencia en programación. Para el resto de esta guía, las instrucciones requieren cierto conocimiento de programación de computadoras para seguirlas.

Desarrollar un bot de IRC Paso 2
Desarrollar un bot de IRC Paso 2

Paso 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 rápidamente su propio bot personalizado. Un ejemplo de ello es Eggdrop, el bot de IRC más antiguo que aún se mantiene.

Desarrollar un bot de IRC Paso 3
Desarrollar un bot de IRC Paso 3

Paso 3. Considere la posibilidad de 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 del manual de PHP.

Método 2 de 2: desarrollo de su propio bot

Desarrollar un bot de IRC Paso 4
Desarrollar un bot de IRC Paso 4

Paso 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:

    apodo! ident @ nombre de host

  • GECOS: Este campo normalmente contiene el nombre real de un usuario o una descripción general del bot, pero puedes poner lo que quieras allí.
  • 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.
Desarrollar un bot de IRC Paso 5
Desarrollar un bot de IRC Paso 5

Paso 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.

Desarrollar un bot de IRC Paso 6
Desarrollar un bot de IRC Paso 6

Paso 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.

Desarrollar un bot de IRC Paso 7
Desarrollar un bot de IRC Paso 7

Paso 4. Registre su bot

Esto significa proporcionar su apodo, identificador y GECOS al servidor, no registrarse en 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

Desarrollar un bot de IRC Paso 8
Desarrollar un bot de IRC Paso 8

Paso 5. Siga obteniendo datos del socket mediante un bucle

Si no usara 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 a ella 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.

Desarrollar un bot de IRC Paso 9
Desarrollar un bot de IRC Paso 9

Paso 6. Escriba un controlador de ping

Esto es importante. Si no responde a los pings de manera oportuna, el servidor lo desconectará. En primer lugar, 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. Debes * repetir exactamente lo que dijo el servidor, excepto usando PONG.

Desarrollar un bot de IRC Paso 10
Desarrollar un bot de IRC Paso 10

Paso 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 los mensajes privados).

  • Para hacer esto, verificaremos los códigos de estado del servidor 376 o 422. 376 significa que el MOTD (mensaje del día) terminó. 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.
  • Observe 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.
Desarrollar un bot de IRC Paso 11
Desarrollar un bot de IRC Paso 11

Paso 8. Responda 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 debes responder usando el apodo del remitente, no el tuyo (de lo contrario, estarías hablando contigo mismo, y eso es una tontería).
Desarrollar un bot de IRC Paso 12
Desarrollar un bot de IRC Paso 12

Paso 9. Amplíe su 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.

Consejos

  • Puede producir el resultado del comando "/ me" colocando un prefijo en sus mensajes de esta manera:

    • PRIVMSG #canal: / 001ACTION texto aquí / 001.
    • 001 significa el carácter ASCII 1 y se interpretará como tal en una cadena PHP entre comillas dobles. Alternativamente, puede usar

      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 […]. Consulte la página de mIRC para obtener 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.

Recomendado: