标签: irc

IRC中如何保证最短路径?

RFC 2810对于一对一通信有以下规定:

一对一的通信通常由客户端执行,
因为大多数服务器到服务器的流量并不是服务器
仅相互通信的结果。为了给客户端提供一种相互通信的方式
,要求所有服务器都能够
沿着生成树向一个方向发送消息,以便到达任何
客户端。因此,消息传递的路径是
生成树上任意两点之间的最短路径。

(强调我的。)

这个“一个方向”是什么意思呢?只针对一位客户?它如何“到达任何客户端”并找到“任意两点[IRC网络上的主机]之间的最短路径”?
为什么不直接存储客户端的 IP 地址并让 IP 完成其工作呢?毕竟,IRC 是建立在 TCP/ IP之上的。

irc networking path-finding

2
推荐指数
1
解决办法
208
查看次数

如何在Python中意外退出后再次运行程序?

我正在用Python写一个IRC机器人,由于它的alpha性质,它可能会出现意外错误并退出.

我可以用什么技术让程序再次运行?

python irc

1
推荐指数
1
解决办法
799
查看次数

Twisted - 如何创建多协议进程并在协议之间发送数据

我试图编写一个程序,在某些端口(比如tcp 6666)上监听数据(简单文本消息),然后将它们传递给一个或多个不同的协议 - irc,xmpp等等.我已经尝试了很多方法并挖掘了互联网,但我找不到容易和有效的解决方案来完成这样的任务.

我目前正在与之斗争的代码是:http://pastebin.com/ri7caXih

我想知道如何从对象:

ircf = ircFactory('asdfasdf','#asdf666')

获得访问自协议方法,因为这:

self.protocol.dupa1(MSG)

返回有关self未传递给活动协议对象的错误.或者也许还有其他的,更好的,更简单的,更犹豫的方式来创建具有多个协议的单个反应器,并且当消息到达其中任何一个时具有动作触发器,然后将该消息传递给其他协议以进行处理/处理/发送?

任何帮助将非常感谢!

python irc xmpp twisted

1
推荐指数
1
解决办法
4052
查看次数

这是什么语言?(对于IRC机器人)

终于找到了我大约10年前为IRC Bot编写的一些非常古老的脚本.我不知道我在做什么,并想知道是否有人知道这是什么写的和任何信息?

on *:sockread:$1:{
  var %stattype $1
  if ($sockerr) {
    .notice [ %nickname [ $+ [ %stattype ] ] ] Error.
    halt
  }
  else {
    var %statread
    sockread %statread
    if (Stat:* * * * iswm %statread) {
      .tokenize 32 %statread
      .notice [ %nickname [ $+ [ %stattype ] ] ] 1[ Username:7 $upper( [ %username [ $+ [ %stattype ] ] ] ) 1] [ Skill: 7 $upper(%stattype) 1] 
      .notice [ %nickname [ $+ [ %stattype ] ] ] 1[ …
Run Code Online (Sandbox Code Playgroud)

irc bots

1
推荐指数
1
解决办法
880
查看次数

Python:检查IRC连接是否丢失(PING PONG?)

所以我的问题是,如果有一个PING,我怎么能让我的机器人听,如果在一分钟的间隔内没有ping,它会像连接丢失一样做出反应.怎么会这样做呢?

编辑:

这是用于注册连接余量的工作代码(尽管重新连接时遇到问题):

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import socket
import string
import os
import platform
import time

# Variables
HOST = "irc.channel.net"
PORT = 6667
NICK = "Botname"
IDENT = "Botname"
REALNAME = os.getenv('USER')
CHAN = "##ChannelName"
readbuffer = ""

# Our IRC connection
irc = socket.socket()
irc.settimeout(300)
connected = False
def connection(host, port, nick, ident, realname, chan):
    while connected is False:
        try:
            irc.connect((host, port))
            irc.send("NICK %s\r\n" % nick)
            irc.send("USER %s %s bla :%s\r\n" % …
Run Code Online (Sandbox Code Playgroud)

python irc

1
推荐指数
1
解决办法
1万
查看次数

如何在IRC的DCC协议中处理IPv6

在IRC DCC通信中,为了启动连接,您必须向另一个人提供IP地址和端口.但是,您如何在IPv6世界中处理这个问题?

我正在用Java编写机器人的IRC框架部分,所以我需要能够处理各种情况.似乎没有一种标准的方法来处理这个问题

我通过IPv6对现有客户进行了一些测试(两个Teredo客户端通过Ipv6连接到freenode

  • Firefox中的Chatzilla不发送任何内容.它只是没有发生任何事情
  • Xchat只是发送0作为IP地址,这是错误的.

我知道DCC协议有一些扩展,以人类可读的格式发送IP地址,但这些扩展不是标准的,也不是广泛支持的.发送0似乎不是我的机器人未来证明的合适方式.

现在我正在将IPv6地址转换为BigInteger,但另一方面弄清楚BigInteger是IPv4还是IPv6地址是不是让我感到困惑(我后来问这个怎么做).

TL; DR:在IPv6环境中处理DCC的适当方法是什么?我应该发送0,我是否应该发送任何内容并在机器人中引发其不受支持的异常,或者我应该发送怪物BigInteger?

java irc ipv6

1
推荐指数
1
解决办法
972
查看次数

在Python中将数组格式化为字符串

我正在制作一个python irc审核机器人.其中一个功能是报告.

因此,它是多个单词,因此当机器人输出报告时,它显示为

Report from aletheia Offender: codefreak Channel: #admin Reason: ['test', 'report']
Run Code Online (Sandbox Code Playgroud)

如何格式化原因(在代码中写为行[6:].(行中的第6个参数))所以它显示为一个字符串而不是数组?

python irc bots

1
推荐指数
1
解决办法
170
查看次数

Python IRC Bot在240秒后定时

我正在尝试制作一个IRC机器人,但它会在240秒后保持超时.我怎样才能解决这个问题?

import socket 
host = 'test'
port = 6667
channel = '#test'
nick = "test"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.send('NICK ' + str(nick) +  ' \n\r') 
s.send('USER v v v :v Script' + '\r\n')
s.send('JOIN '+channel+' \n\r')

while True:
    command = s.recv(4096)
    print command
Run Code Online (Sandbox Code Playgroud)

python sockets irc bots

1
推荐指数
1
解决办法
1286
查看次数

我可以在没有加入的情况下向IRC发送消息吗?

我可以在没有加入的情况下向IRC发送消息吗?

在生产运行服务器的服务器上是否设置了通常的安全限制?

irc

1
推荐指数
1
解决办法
416
查看次数

如何从命令行下载XDCC包(来自IRC机器人)?

比方说,我们有一个IRC #ChannelNameirc.server.com这里人们可以自由地从机器人下载文件,通过如命令/msg BotName xdcc send #123,我们要下载一个这样的文件到我们/download/dir.如何在简单的wget/curl-like命令中执行此操作?

它可能不止一个命令或一个脚本,但请记住,我想将它封装到一个脚本中,这样我就可以输入一些内容.

irc-download.sh irc.server.com ChannelName BotName 123 /download/dir
Run Code Online (Sandbox Code Playgroud)

然后等待一段时间,然后获取文件,就像下载wget一样.

解决方案中的好东西:

  • 是跨平台的(即Windows二进制文件或可以编译到其中的源代码或脚本).
  • 有某种进步指示.
  • 可以同时下载两个文件(即连接两次到同一服务器没有问题).
  • 可以防止在同一会话中发送其他未请求文件的坏机器人.
  • 主要是自包含的(即,任何需要的二进制文件都可以自己运行).

irc bash bots download

1
推荐指数
1
解决办法
2723
查看次数

标签 统计

irc ×10

python ×5

bots ×4

bash ×1

download ×1

ipv6 ×1

java ×1

networking ×1

path-finding ×1

sockets ×1

twisted ×1

xmpp ×1