Client-To-Client Protocol
Das Client-To-Client Protocol (CTCP) dient einer besonderen Form der Kommunikation zwischen IRC-Clients.
CTCP erweitert dabei normale IRC-Textnachrichten um spezielle Befehle, durch die bestimmte Nachrichten versandt und Informationen des Empfängers abgefragt werden können. Unter anderem die Ortszeit (TIME), die Versionsinformationen des genutzten IRC-Clients (VERSION) und der reale Benutzername (FINGER). Die gängigen IRC-Clients verstehen diese Anfragen und beantworten sie entsprechend den Benutzereinstellungen. Häufig wird standardmäßig mindestens die Versionsabfrage beantwortet.
CTCP wird außerdem durch den CTCP-ACTION-Befehl für die Implementierung des Pseudo-Befehls /me benutzt, durch den eine Nachricht beim Empfänger als „Handlung“ interpretiert und entsprechend dargestellt wird (zum Beispiel „Angela hat den Computer verlassen“).
Des Weiteren wird mit CTCP-DCC eine direkte DCC-Verbindung zwischen zwei IRC-Clients aufgebaut.
Die CTCP-Spezifikation ist bisher in keiner offiziellen RFC zum IRC-Protokoll festgeschrieben und somit lediglich ein De-facto-Standard.
CTCP-Anfragen
CTCP-Anfragen können in den gängigen IRC-Clients für gewöhnlich durch die Eingabe des folgenden Befehls verschickt werden:
/CTCP <nickname> BEFEHL
BEFEHL steht hierbei für den eigentlichen Befehl, der über CTCP ausgeführt werden soll.
Eine Auswahl von häufig genutzten CTCP-Befehlen(für einen User mit Nicknamen Anonymus):
- PING gibt die Latenzzeit der IRC-Verbindung zwischen dem eigenen Rechner und dem des Empfängers zurück.
Beispiel:
- Befehl: /CTCP Anonymus PING
- Antwort: 2secs
- VERSION gibt die Versionsinformationen des verwendeten Clients zurück.
Beispiel:
- Befehl: /CTCP Anonymus VERSION
- Antwort: mIRC v6.16 Khaled Mardam-Bey
- TIME gibt die Systemzeit, für gewöhnlich die Ortszeit, des Empfängers zurück.
Beispiel:
- Befehl: /CTCP Anonymus TIME
- Antwort: Sat Oct 02 03:05:54 2004
- FINGER gibt die Idle-Zeit, den Namen sowie die eingetragene E-Mail-Adresse des Chatters zurück.
Beispiel:
- Befehl: /CTCP Anonymus FINGER
- Antwort: anonym (anonymous@example.net) Idle 82 seconds (-)
Siehe auch
- Direct Client-to-Client (DCC)
Weblinks
- Die CTCP-Spezifikation
- <templatestyles src="Webarchiv/styles.css" />{{#if:20090304061622
| {{#ifeq: 20090304061622 | *
| {{#if: Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation | {{#invoke:WLink|getEscapedTitle|Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation}} | {{#invoke:Webarchiv|getdomain|http://www.invlogic.com/irc/ctcp.html}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20090304061622}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation | {{#invoke:WLink|getEscapedTitle|Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation}} | {{#invoke:Webarchiv|getdomain|http://www.invlogic.com/irc/ctcp.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20090304061622}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation | {{#invoke:WLink|getEscapedTitle|Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation}} | {{#invoke:Webarchiv|getdomain|http://www.invlogic.com/irc/ctcp.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation | {{#invoke:WLink|getEscapedTitle|Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation}} | {{#invoke:Webarchiv|getdomain|http://www.invlogic.com/irc/ctcp.html}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation | {{#invoke:WLink|getEscapedTitle|Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation}} | {{#invoke:Webarchiv|getdomain|http://www.invlogic.com/irc/ctcp.html}} }} ({{#if: {{#if: | {{{archiv-bot}}} | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation | {{#invoke:WLink|getEscapedTitle|Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation}} | {{#invoke:Webarchiv|getdomain|http://www.invlogic.com/irc/ctcp.html}} }}
}}}}}}}}{{#if:
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20090304061622|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.invlogic.com/irc/ctcp.html}}
|| {{#if: || }}
}}{{#if: Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation
| {{#if: {{#invoke:WLink|isBracketedLink|Inoffizieller Entwurf für aktualisierte CTCP-Spezifikation}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://www.invlogic.com/irc/ctcp.html%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.invlogic.com/irc/ctcp.html%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://www.invlogic.com/irc/ctcp.html }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}}, implementiert von vielen Clients