客户端至客户端协议

✍ dations ◷ 2025-11-13 07:07:20 #IRC,网络术语,IRC相关协议

客户端至客户端协议(英语:Client-to-client protocol ,简称CTCP)是互联网中继聊天(IRC)客户端之间的一种特殊类型的通信。

CTCP是现今使用的大多数IRC客户端支持的一种常见协议。CTCP扩展了原始的IRC协议,允许用户查询其他客户端或频道(使频道中所有客户端都回复CTCP特殊信息)。此外,CTCP可以用来编码信息,发送原始IRC协议的链路不允许发送的信息,例如包含换行或字节值为0(NULL)的信息。CTCP不在客户端之间创建直接连接,但它通常用于协商DCC(英语:Direct Client-to-Client)连接。

CTCP允许用户查询远程客户端正在使用的客户端版本(通过CTCP VERSION)或时间(CTCP TIME)等信息。它还实现了/me命令(通过CTCP ACTION)。

ircII(英语:ircII)是第一个实现了CTCP和DCC协议的IRC客户端。Michael Sandrof在1990年将CTCP协议在ircII 2.1版中实现,Troy Rollo在1991年将DCC协议在2.1.2版本中实现。

CTCP采用一条PRIVMSGNOTICE消息实现,消息中的第一个和最后一个字符是ASCII值0x01。此外,IRC协议中不允许的字符将被转义。由于NOTICE按标准应产生一条回复,CTCP消息采用PRIVMSG发送,而回复采用NOTICE而非PRIVMSG实现。

CTCP查询在大多数客户端上按下列方式初始化:

CTCP <target> <command> <arguments>

其中是目标的昵称或频道名称, 是CTCP命令(例如VERSION), 是发送给的额外信息。

请注意,下列CTCP命令和回复因客户端而不同,但大多数主要的IRC客户端支持它们。因您的IRC客户端不同,传入特定CTCP命令后,您可能会收到或不会收到自动的回复或响应,并且这些自动响应可能因客户端不同而有差异。

CTCP VERSION请求将返回目标正在使用的IRC客户端的名称和版本,某些情况下还提供一些技术信息,诸如操作系统、时钟频率、CPU制造商和CPU架构/指令集。

下面是将一个CTCP VERSION请求发送到运行有HexChat客户端(XChat的一个复刻)的回复:

VERSION HexChat 2.9.1  / Windows 8 

TIME

CTCP TIME请求将返回目标计算机的本地时间。决于IRC客户端,回复可能是包含日期、时间(12小时格式或24小时格式),年(例如2019)以及某种时区(例如AEST(英语:Time in Australia))。

下面是将一个CTCP TIME发送到使用ChatZilla客户端后的回复:

TIME Fri 23 Nov 2019 19:26:42 AEST

PING

CTCP PING请求将测量现有两个客户端之间的直接ping速率(不算服务器)。CTCP PING命令采用的方式是,发送一个整数参数(英语:Argument (computer science))(一个时间戳)到目标客户端,然后目标客户端提供完全相同的数字参数来响应。之后计算原始时间戳与当前时间戳的差异,将结果显示给发起的用户。在过程中通常使用毫秒级的时间戳,因为大多数用户使用的宽带互联网连接通常只有1秒以下的ping延迟。

一个CTCP PING请求的示例,从XChat客户端发送给目标:

CTCP PING 23152511

在之后,根据所获样本差异产生的结果:

相关

  • 伊本·鲁世德阿布·瓦利德·穆罕默德·伊本·阿马德·伊本·鲁世德(阿拉伯语:أبو الوليد محمد ابن احمد ابن رشد‎,1126年-1198年12月10日),又译为阿威罗伊、亚维侯
  • Brain《Brain》(韩语:브레인),为韩国KBS自2011年11月14日起播出的月火迷你连续剧,由《学习之神》的制作团队再度携手打造,讲述发生在大学附属医院研究脑部神经外科的医学类电视剧。原定
  • 克里斯托夫·英果尔德克里斯托夫·英果尔德(英语:Christopher Kelk Ingold,1893年10月28日-1970年12月8日),英国化学家,伦敦大学学院教授。物理有机化学的开山鼻祖。他和罗宾逊一起开始了有机反应机理的
  • 黑桫椤黑桫椤(学名:Alsophila podophylla)又名鬼桫椤,为桫椤科桫椤属下的一个种。分布琉球、南中国、越南、泰国,台湾低海拔地区。
  • 威廉·佛格·奥斯古德威廉·佛格·奥斯古德(英语:William Fogg Osgood,1864年3月10日-1943年7月22日),出生于波士顿,美国数学家。1864年生于马萨诸塞州的波士顿。奥斯古德于1886年自哈佛大学毕业,之后前
  • 赵海一赵海一(朝鲜语:조해일/趙海一 ,1941年4月18日-2020年6月19日),韩国小说家。1941年生于哈尔滨。1945年回国后在首尔长大。1965年毕业于庆熙大学国文专业,研究生毕业后留校任教。1970
  • 超越方程超越方程(英语:transcendental equation)是包含超越函数的方程,也就是方程中有无法用自变数的多项式或开方表示的函数,与超越方程相对的是代数方程。超越方程的求解无法利用代数
  • 卢献匾卢献匾(1962年12月-),广西环江人,壮族,中华人民共和国政治人物、第十二届全国人民代表大会广西地区代表。毕业于广西师范大学经济史专业。加入中国共产党。2013年,担任全国人大代表
  • 朱塞佩·马志尼朱塞佩·马志尼(又译吉塞培·马志尼/朱塞培·马治尼,Giuseppe Mazzini,1805年6月22日-1872年3月10日,生于意大利热那亚),意大利作家、政治家,意大利统一运动的重要人物。1830年,马志
  • 严绶严绶(746年-822年),是唐代四川人。严绶是唐代宗大历年间进士。由侍御史升为宣歙团练副使,后升为尚书刑部员外郎。历任司空、尚书右仆射、太傅、荆南节度使、河东节度使等职,“在镇