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

The*_*eLQ 1 java irc 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?

dus*_*uff 5

DCC没有正式的RFC,因此唯一真正的权威文件是原始的CTCP规范:

http://www.irchelp.org/irchelp/rfc/ctcpspec.html

哪种假设IPv4:

地址,端口和大小应作为十进制整数的ASCII表示形式发送,该十进制整数是通过将值转换为主机字节顺序并将它们分别视为无符号长整数,无符号短整数和无符号长整数而形成的.

您可能想要检查mIRC和irssi的作用,因为它们比Chatzilla和XChat更常用,并且可能提出了某种双方都可接受的解决方案.