如何开发irc机器人(develop an irc bot)

如果你一直在互联网中继聊天(IRC),很可能你在某个时候遇到了一个机器人。机器人是独立的程序或脚本,它们以与人类相同的方式连接到网络。它们可以通过编程来响应用户命令,甚至聊天。在本指南中,您可以找到构建IRC机器人的选项,以及如何从头开始构建。...

方法1方法1/2:评估选项

  1. 1考虑安装客户端脚本。有时候你只想完成一个简单的任务,而不想让它成为一个独立的程序。在这种情况下,可以将脚本附加到IRC客户端。这在mIRC中非常常见,它有一个强大的脚本引擎和多种可用脚本。这是最简单的选择,如果你没有太多或任何编程经验,强烈推荐。在本指南的其余部分中,这些说明需要一些计算机编程知识才能遵循。
  2. Image titled Develop an IRC Bot Step 1
  3. 2为你的机器人考虑一个预先存在的代码库。有许多开源和免费的程序可以帮助你快速建立自己的定制机器人。Eggdrop就是这样一个例子,它是目前仍在维护的最古老的IRC机器人。
  4. Image titled Develop an IRC Bot Step 2
  5. 3.考虑编写自己的机器人。对于已经熟悉编程语言的高级IRC用户和开发人员来说,这是一个很好的选择。只要有socket支持,几乎可以使用任何语言,但常用的语言包括Python、Lua、PHP、C和Perl。如果你不懂这些,但你懂另一种语言,这不是问题。你通常可以在网上找到你想要的任何语言的例子。在本文中,我们将演示如何使用PHP。要使用PHP,您需要在计算机或服务器上安装PHP-CLI。PHP可以从PHP下载。netPHP脚本可以从命令行执行。有关使用PHP的更多信息和帮助,请参阅本PHP手册页。
  6. Image titled Develop an IRC Bot Step 3

方法2方法2/2:开发自己的机器人

  1. 1获取连接详细信息。要成功连接到网络,您需要获得以下信息。服务器:用于连接到IRC的服务器的域名,如chat。自由节点。netPort:在大多数情况下,这是6667,但如果您不确定,请查看您自己的IRC客户端或网络的网站。昵称:你的机器人应该使用的昵称。请记住,有些特殊字符通常是不允许的(@#!~)。Ident:Ident字段出现在昵称之后,当某人执行WHOIS时,如:昵称!ident@hostnameGECOS:此字段通常包含用户的真实姓名或机器人的一般描述,但您可以在其中输入任何内容。频道:你通常希望你的机器人出现在一个或多个频道中。在大多数网络上,它们的前缀是“#”,但它可能是其他的。
  2. Image titled Develop an IRC Bot Step 4
  3. 2初始化脚本中的配置。最基本的方法是根据上面的配置名称命名几个变量。你也可以将它们存储在一个配置文件中,然后解析出来,但现在我们只讨论绝对必要的东西。
  4. Image titled Develop an IRC Bot Step 5
  5. 3连接到网络。为此,需要在指定端口上打开服务器的套接字。您还应该在这部分中添加一些错误处理代码,以防连接因任何原因而失败。在这种情况下,PHP为我们提供了一些简洁的函数来有效地处理错误。
  6. Image titled Develop an IRC Bot Step 6
  7. 4注册你的机器人。这意味着向服务器提供您的昵称、标识和GECOS,而不是向NickServ注册。要做到这一点,只需将NICK和USER命令写入服务器,然后是回车符和换行符。必须严格按照图中所示执行,因为这是IRC协议规范RFC1459中规定的。请注意,中间的两个参数(在本例中,*和8)必须指定,但服务器会忽略它们。这两者仅在链接的服务器之间使用,而不是由直接连接的客户端使用。
  8. Image titled Develop an IRC Bot Step 7
  9. 5Keep使用循环从套接字获取数据。如果你没有使用循环,你的脚本会立即终止,机器人基本上是无用的。为了保持连接,您必须从服务器获取数据,检查流中是否有您想要的任何输入,如果有,则做出响应。在这里,我们使用socket_read()获取数据,以获取任何可用的数据。如果有,我们会继续做循环中的任何事情。还可以将原始数据输出到控制台,这样您就可以从bot的角度看到发生了什么。
  10. Image titled Develop an IRC Bot Step 8
  11. 6编写一个ping处理程序。这很重要。如果您没有及时响应ping,服务器将断开您的连接。让我们先解决这个问题。PING从服务器发送时是这样的:PING:rajaniemi。自由节点。网服务器不必在“:”后面加上它的名字,它可以提供它想要的任何东西。你必须重复服务器说的话,除了用乒乓球。
  12. Image titled Develop an IRC Bot Step 9
  13. 7.加入你的频道。好的,我们有一个机器人连接到网络并响应ping,但在其他方面什么都不做。为了让人们看到并使用你的机器人,它应该在一个频道中(否则你必须告诉它响应私人消息)。为此,我们将检查服务器状态代码376或422。376表示MOTD(当日消息)已完成。422意味着没有可以发送的MOTD。MOTD只是服务器在你连接时发送的东西,但它是我们何时可以开始加入频道的一个好指标。您需要发出JOIN命令。该命令后面可以有一个或多个通道,通道之间用逗号分隔。请注意,服务器发送的数据很方便地用空格分隔。通过这种方式,我们可以分割数据并使用数组索引引用它。
  14. Image titled Develop an IRC Bot Step 10
  15. 8回复频道信息。现在来看有趣的部分。你的机器人已经加入了频道,所以现在你可以随心所欲地使用它了。让我们创建一个名为@moo的示例命令。注意消息开始的偏移量(这适用于通道和私人消息)。它总是在同一个地方。您可以通过将分块的数据重新拼接在一起($d),来处理带有空格的命令。这超出了本文的范围。如果目标是一个通道(例如#botters test),那么您将对此进行回复。如果这是一条私人消息,这一点将是你的机器人的昵称!然后你必须用发件人的昵称回复,而不是你的昵称(否则你就是在自言自语,这太傻了)。
  16. Image titled Develop an IRC Bot Step 11
  17. 9扩展你的机器人。您可以使用上述实现添加许多新功能。可以向IRC网络发出许多其他命令,例如管理ops、踢和禁止、设置主题,以及许多其他功能。
  18. Image titled Develop an IRC Bot Step 12
  • 通过在消息前面加上如下前缀,可以生成“/me”命令的结果:PRIVMSG#channel:\001ACTION text here\001\001表示ASCII字符1,将在双引号PHP字符串中解释为ASCII字符1。或者,可以在字符串之外使用chr(1)。
  • 在消息中,可以通过在“\003”(ASCII代码3)前面加上颜色的数字来生成颜色。0=白色,1=黑色,2=蓝色,3=绿色,4=红色[…]。更多颜色请参见mIRC页面。
  • 出于礼貌,在让你的机器人上线之前,先征得频道所有者和IRC运营商的同意。并非所有的网络和频道都对机器人有欢迎的政策,即使是行为良好的机器人。
  • 一些IRC守护进程超出了协议的规范,实现了其他功能。如果你正在为一个特定的网络做准备,你当然可以利用这些功能,如果你知道它们的协议的话。但是,如果你想让你的机器人部署在多个网络上,试着保持RFC中的状态。
  • 发表于 2022-03-22 11:03
  • 阅读 ( 104 )
  • 分类:IT

你可能感兴趣的文章

7款经典的在线即时通讯服务,与朋友聊天

... 一些最好的电报功能包括机器人、支持多个电话号码、秘密聊天和代理服务器。 ...

  • 发布于 2021-03-12 22:48
  • 阅读 ( 275 )

robot先生让linux进入公众视野的6种方式

...节目中呈现近乎完美的技术。令人惊讶的是,通过观看《机器人先生》,你可以学到很多关于Linux的知识。 ...

  • 发布于 2021-03-17 06:51
  • 阅读 ( 492 )

yahoo messenger和另外6个windows im应用程序仍在运行

...。OpenCandy是一个臭名昭著的广告软件平台,被许多反病毒开发者正确地归类为恶意软件。 ...

  • 发布于 2021-03-17 07:38
  • 阅读 ( 221 )

为什么2020年是重新审视irc的最佳时机

...你可以把时间倒回到1993年,再次成为一只在线狗。 今天如何连接到irc 今天连接到IRC比以往任何时候都要容易,这要归功于所有主要平台的客户端程序。在大多数情况下,你所要做的就是下载一个IRC客户端(或者从应用商店安...

  • 发布于 2021-04-01 19:38
  • 阅读 ( 194 )

discord中最有用的聊天和bot命令

...便从服务器中获得更多功能。下面是最有用的聊天命令和机器人不和谐。 相关:如何设置自己的Discord聊天服务器 很像IRC或Slack,Discords服务器使用slash命令来运行任务或与bot交互。要使用斜杠命令,首先键入/然后键入命令并按en...

  • 发布于 2021-04-07 11:12
  • 阅读 ( 972 )

什么是僵尸网络?

僵尸网络是由远程控制的计算机或“机器人”组成的网络。这些计算机感染了允许远程控制的恶意软件。有些僵尸网络由数十万甚至数百万台计算机组成。 “机器人”只是“机器人”的一个简短的词。像机器人一样,软件机器...

  • 发布于 2021-04-09 04:46
  • 阅读 ( 177 )

如何在discord上启用或禁用开发人员模式

...,但是如果你没有看到你需要的功能,你就需要添加一个机器人。如果你自己是一个机器人开发者,你可能想先启用Discord的开发者模式。 开发人员模式在Discord客户端中启用某些附加信息,例如服务器的通道和消息ID。例如,如...

  • 发布于 2021-04-14 17:35
  • 阅读 ( 189 )

一切都会有机器人

这一切都发生在一次:聊天机器人,聊天机器人,和更多的聊天机器人。既然Facebook将向Messenger添加机器人程序,那就没有回头路了。我们会用机器人买鲜花,我们会用机器人订车,我们会用机器人计划度假。我们将与更多的品...

  • 发布于 2021-05-04 05:04
  • 阅读 ( 141 )

黑帽子还是白帽子?关于这位英雄研究员突然被捕的问题纷至沓来

...。这些日志将当时18岁左右的年轻哈钦斯人描绘成一个玩机器人和脚本的低级黑帽黑客。不过,尽管他夸大其词地暗示自己参与了恶意代码市场,但他从未明确表示自己**任何恶意代码,也没有任何日志将他与银行特洛伊木马Krono...

  • 发布于 2021-05-29 08:26
  • 阅读 ( 131 )

这个不和谐的机器人变成了poké我开始了一场基于文本的冒险

...的时候,如果不关掉手持设备或**,就会有一个不和谐的机器人。戳éWorld提供了经典的catch'em all RPG的精简版本,这是一个只提供文本的版本,您可以在自己的休闲时间享受。 要玩,Discord用户可以登录到主Poké世界服...

  • 发布于 2021-05-30 00:07
  • 阅读 ( 157 )
cqyttrs4
cqyttrs4

0 篇文章

相关推荐