Como desenvolver um bot IRC: 12 etapas (com imagens)

Índice:

Como desenvolver um bot IRC: 12 etapas (com imagens)
Como desenvolver um bot IRC: 12 etapas (com imagens)

Vídeo: Como desenvolver um bot IRC: 12 etapas (com imagens)

Vídeo: Como desenvolver um bot IRC: 12 etapas (com imagens)
Vídeo: COMO ENCONTRAR EMAILS ANTIGOS PELO CELULAR E COMPUTADOR 2024, Abril
Anonim

Se você esteve no Internet Relay Chat (IRC), é provável que tenha encontrado um bot em algum momento. Bots são programas ou scripts independentes que se conectam a uma rede da mesma forma que um ser humano o faria. Eles podem ser programados para responder aos comandos do usuário ou até mesmo para bate-papo. Neste guia, você pode descobrir quais são suas opções para construir um bot IRC e também como construir um do zero.

Passos

Método 1 de 2: Opções de avaliação

Desenvolva um IRC Bot, Etapa 1
Desenvolva um IRC Bot, Etapa 1

Etapa 1. Considere a instalação de um script de cliente

Às vezes, você quer apenas uma tarefa simples e não quer que seja um programa independente. Nesse caso, você pode anexar um script a um cliente IRC. Isso é muito comum de fazer com o mIRC, que tem um mecanismo de script robusto e uma ampla variedade de scripts disponíveis. Esta é a opção mais fácil e altamente recomendada se você não tem muita ou nenhuma experiência em programação. Para o restante deste guia, as instruções requerem algum conhecimento de programação de computador para serem seguidas.

Desenvolva um IRC Bot, Etapa 2
Desenvolva um IRC Bot, Etapa 2

Etapa 2. Considere uma base de código pré-existente para o seu bot

Existem muitos programas de código aberto e gratuitos que podem ajudá-lo a configurar seu próprio bot personalizado rapidamente. Um exemplo é o Eggdrop, o bot IRC mais antigo ainda em manutenção.

Desenvolva um IRC Bot, Etapa 3
Desenvolva um IRC Bot, Etapa 3

Etapa 3. Considere escrever seu próprio bot

Para usuários avançados de IRC e desenvolvedores que já conhecem uma linguagem de programação, esta é uma ótima opção. Você pode usar praticamente qualquer linguagem que desejar, desde que tenha suporte a soquetes, mas as mais populares incluem Python, Lua, PHP, C e Perl. Se você não conhece nenhum desses, mas conhece outro idioma, não há problema. Normalmente, você pode encontrar exemplos na web em qualquer idioma que desejar. Para este artigo, vamos demonstrar o uso de PHP. Para usar o PHP, você precisa ter o PHP-CLI instalado em seu computador ou servidor.

  • PHP pode ser baixado de php.net
  • Os scripts PHP podem ser executados na linha de comando. Para obter informações adicionais e ajuda sobre como usar o PHP, consulte esta página de manual do PHP.

Método 2 de 2: desenvolvendo seu próprio bot

Desenvolva um IRC Bot, Etapa 4
Desenvolva um IRC Bot, Etapa 4

Etapa 1. Reúna os detalhes da conexão

Você precisará obter as seguintes informações para se conectar à rede com êxito.

  • Servidor: O nome de domínio do servidor usado para se conectar ao IRC, como

    chat.freenode.net

  • Porta: Na maioria dos casos, é 6667, mas se você não tiver certeza, verifique seu próprio cliente de IRC ou o site da rede.
  • Apelido: O apelido que seu bot deve usar. Lembre-se de que alguns caracteres especiais geralmente não são permitidos (@ #! ~).
  • Ident: O campo ident aparece após o apelido quando alguém realiza um WHOIS como este:

    apelido! ident @ nome do host

  • GECOS: Este campo normalmente contém o nome real do usuário ou uma descrição geral do bot, mas você pode colocar o que quiser lá.
  • Canal: Normalmente, você deseja que seu bot esteja presente em um ou mais canais. Na maioria das redes, eles são prefixados com '#', mas pode ser outra coisa.
Desenvolva um IRC Bot, Etapa 5
Desenvolva um IRC Bot, Etapa 5

Etapa 2. Inicialize a configuração em seu script

A maneira mais básica de fazer isso é nomear algumas variáveis de acordo com os nomes de configuração acima. Você também pode armazená-los em um arquivo de configuração e analisá-los, mas por enquanto vamos apenas nos ater às necessidades absolutas.

Desenvolva um IRC Bot, Etapa 6
Desenvolva um IRC Bot, Etapa 6

Etapa 3. Conecte-se à rede

Para fazer isso, você precisará abrir um soquete para o servidor na porta especificada. Você também deve adicionar algum código de tratamento de erros nesta parte, caso a conexão falhe por qualquer motivo. Nesse caso, o PHP nos fornece algumas funções interessantes para lidar com o erro de forma eficaz.

Desenvolva um IRC Bot Passo 7
Desenvolva um IRC Bot Passo 7

Etapa 4. Registre seu bot

Isso significa fornecer seu apelido, ident e GECOS ao servidor, não se registrar no NickServ. Para fazer isso, basta escrever os comandos NICK e USER no servidor, seguidos por um retorno de carro e nova linha. É imperativo que você faça exatamente como mostrado, porque é assim que está especificado no RFC1459, a especificação para o protocolo IRC.

Observe que os dois parâmetros intermediários (neste caso, * e 8) devem ser especificados, mas são ignorados pelo servidor. Esses dois são usados apenas entre servidores vinculados, não por um cliente conectado diretamente

Desenvolva um IRC Bot, Etapa 8
Desenvolva um IRC Bot, Etapa 8

Etapa 5. Continue buscando dados do soquete usando um loop

Se você não usasse um loop, seu script seria encerrado imediatamente e o bot seria basicamente inútil. Para permanecer conectado, você deve buscar dados do servidor, verificar se há alguma entrada no fluxo que você deseja e responder a ela se for o caso. Aqui, estamos pegando dados usando socket_read () para pegar quaisquer dados disponíveis para nós. Se houver, continuamos fazendo tudo o que está no circuito. Também pode ser útil enviar os dados brutos para o console para que você possa ver o que está acontecendo da perspectiva do bot.

Desenvolva um IRC Bot Passo 9
Desenvolva um IRC Bot Passo 9

Etapa 6. Escreva um manipulador de ping

Isso é importante. Se você não responder aos pings em tempo hábil, o servidor o desconectará. Vamos cuidar disso primeiro. Os pings têm esta aparência quando enviados do servidor:

PING: rajaniemi.freenode.net

. O servidor não precisa colocar seu nome depois de ':', ele pode fornecer o que quiser. Você * deve * repetir exatamente o que o servidor disse, exceto usando PONG.

Desenvolva um IRC Bot - Etapa 10
Desenvolva um IRC Bot - Etapa 10

Etapa 7. Junte-se aos seus canais

Ok, então temos um bot que se conecta à rede e responde aos pings, mas de outra forma não faz nada. Para que as pessoas vejam e usem seu bot, ele deve estar em um canal (caso contrário, você teria que dizer a ele para responder a mensagens privadas).

  • Para fazer isso, verificaremos os códigos de status do servidor 376 ou 422. 376 significa que o MOTD (mensagem do dia) terminou. 422 significa que não havia nenhum MOTD para enviar. Esse MOTD é apenas algo que o servidor envia quando você se conecta, mas é um bom indicador de quando podemos começar a entrar nos canais.
  • Você precisará emitir um comando JOIN. Este comando pode ser seguido por um ou mais canais separados por uma vírgula.
  • Observe que os dados que o servidor envia são convenientemente delimitados por espaços. Dessa forma, podemos dividir os dados e referenciá-los usando um índice de array.
Desenvolva um IRC Bot, Etapa 11
Desenvolva um IRC Bot, Etapa 11

Etapa 8. Responda às mensagens do canal

Agora a parte divertida. Seu bot entrou no canal, então agora você pode usá-lo para o que deseja. Vamos criar um comando de exemplo chamado @moo.

  • Observe o deslocamento onde as mensagens começam (isso se aplica a canais e mensagens privadas). Está sempre no mesmo lugar.
  • Você pode manipular comandos com espaços, juntando os dados fragmentados novamente ($ d). Isso está além do escopo deste artigo.
  • Se o alvo for um canal (como # botters-test), você responde a isso. Se for uma mensagem privada, este bit será o apelido do seu bot! Você deve então responder usando o apelido do remetente, não o seu (caso contrário, você estaria falando sozinho, e isso é bobagem).
Desenvolva um IRC Bot - Etapa 12
Desenvolva um IRC Bot - Etapa 12

Etapa 9. Estenda seu bot

Você pode adicionar muitos novos recursos usando a implementação acima. Existem muitos outros comandos que podem ser emitidos para a rede IRC, como gerenciar operações, chutar e banir, definir o tópico, entre muitos outros recursos.

Pontas

  • Você pode produzir o resultado do comando "/ me" prefixando suas mensagens da seguinte forma:

    • PRIVMSG #canal: / 001Texto ACTION aqui / 001.
    • 001 significa caractere ASCII 1 e será interpretado como tal em uma string PHP entre aspas duplas. Alternativamente, você pode usar

      chr (1)

    • fora da corda.
  • As cores podem ser produzidas em uma mensagem prefixando "\ 003" (código ASCII 3) seguido por um número para uma cor. 0 = branco, 1 = preto, 2 = azul, 3 = verde, 4 = vermelho […]. Veja a página do mIRC para mais cores.
  • Por uma questão de cortesia, obtenha o consentimento dos proprietários do canal e dos operadores de IRC antes de colocar seu bot online. Nem todas as redes e canais têm uma política de boas-vindas para bots, mesmo os bem comportados.
  • Alguns daemons IRC vão além das especificações do protocolo e implementam outros recursos. Se você estiver se preparando para uma rede específica, certamente poderá usar esses recursos se conhecer o protocolo deles. Se você deseja que seu bot seja implantado em várias redes, no entanto, tente mantê-lo conforme o que está na RFC.

Recomendado: