Befehlssatz
Die wesentliche Kommunikation zwischen IRC-Client und IRC-Server läuft bei IRC über Befehle ab. Die meisten davon werden jedoch automatisch vom IRC-Client verschickt und sind deswegen nicht unbedingt interessant. Beispielsweise die Befehle, um eine Nachricht zu verschicken oder das Topic eines Channels zu ändern.Einige nützliche Befehle jedoch kennen die IRC-Clients in der Regel nicht, man muss sie daher "von Hand" abschicken, um sie benutzen zu können. Zu diesen zählen vor allem D-T-Net eigene Befehle oder andere Erweiterungen über den Standard hinaus.
Wie Befehle verschickt werden können, hängt von dem IRC-Client ab. Meistens kann man sie einfach durch einen vorangestellen Slash angeben (z.B. /setinfo test, manchmal muss man aber auch "/raw " oder "/quote " voranstellen (z.B. /raw setinfo test bzw. /quote setinfo test). Manchmal können Standardbefehle auch nur mit einem vorangestellten Slash ausgeführt werden, während die Erweiterungen mit /quote oder /raw ausgeführt werden müssen.
Wichtig: erweiterungen wie angabe mehrerer channels oder partmsg unten hinzufügen
Oft gebrauchte Standard-Befehle
| Befehl | gebräuchliche Parameter/Syntax | Wirkung | ||
|---|---|---|---|---|
| PRIVMSG |
|
Schickt eine Textzeile an einen User oder einen Channel. Kann meistens auch mit /msg abgekürzt werden und wird selten überhaupt benötigt. mehr... | ||
| NOTICE |
|
Schickt eine sog. Notice an den angegebenen User oder Channel. Notices werden anders, meist auffälliger dargestellt. mehr... | ||
| NICK | [Nickname] | Ändert den eigenen Nickname in den angegebenen. mehr... | ||
| QUIT | [Quitmessage] | Trennt die Verbindung zum IRC-Server. | ||
| AWAY | [Awaymessage] | Setzt eine Awaymessage, um Abwesenheit zu kennzeichnen. mehr... | ||
| WHOIS | [User] | Zeigt Informationen zum angegebenen User an. mehr... | ||
| WHO |
|
Zeigt ausführlichere Infos zu den Usern, auf die die angegebene Usermask passt oder die im angegebenen Channels sind, an. mehr... | ||
| WHOWAS | [User] | Zeigt an, wann der angegebene User online war. mehr... | ||
| LIST | --- | Zeigt eine Liste der Channel an. mehr... |
Oft gebrauchte Standard-Befehle für Channels
| Befehl | gebräuchliche Parameter/Syntax | Wirkung | |||
|---|---|---|---|---|---|
| JOIN | [#Channel] | Betritt einen oder mehrere Channel. mehr... | |||
| PART | [#Channel] | Verlässt einen oder mehrere Channel. Die Part-Message ist optional. mehr... | |||
| MODE |
|
Ändert User- oder Channelmodes. mehr... | |||
| TOPIC | [#Channel] [Topic] | Ändert das Topic eines Channels. Wird nur ein Channel angegeben, wird das aktuelle Topic abgefragt. | |||
| KICK | [#Channel] [User im Channel] | Wirft den angegebenen User aus dem Channel. mehr... | |||
| INVITE | [User] [#Channel] | Lädt den angegebenen User in einen Channel ein. mehr... |
Übliche IRC-Erweiterungen
Die folgenden Befehle sind nicht teil des grundlegensten IRC-Standard, stehen heutzutage jedoch in vielen modernen IRC-Netzen, wie auch dem D-T-Net, zur Verfügung. Im Wesentlichen handelt es sich hierbei um Befehle, mit denen Kommunikation mit den Services (ChanServ, NickServ etc.) sicherer gemacht werden kann:| Befehl | gebräuchliche Parameter/Syntax | Wirkung |
|---|---|---|
| IDENTIFY | [Passwort] | Führt eine Identifizierung mit dem angegebenen Passwort bei NickServ durch. mehr... |
| HELPOP | [Frage] | Richtet eine Frage an alle Helpops |
| CHANSERV | [Text] | Schickt einen Befehl an ChanServ. mehr... |
| NICKSERV | [Text] | Schickt einen Befehl an NickServ. mehr... |
| MEMOSERV | [Text] | Schickt einen Befehl an MemoServ. mehr... |
| WATCH | --- | Kontrolle der servergestützten Notify-Liste. mehr... |
| SILENCE | --- | XXX: schreib mich |
D-T-Net Erweiterungen
Die folgenden Befehle funktionieren nur im D-T-Net.| Befehl | gebräuchliche Parameter/Syntax | Wirkung |
|---|---|---|
| SETINFO | [Infotext] | Setzt einen Infotext, der im WHOIS einsehbar ist. |
| CUNOTICE | [#Channel] [User] | Schickt eine ChanUserNotice an nur einen bestimmten User in einem Channel. mehr... |
| BWLIST | --- | Ändert die Wortliste oder Flags des Jugendschutzmode. mehr... |
| REALNAME | [Text] | Ändert den eigenen Realname, der im WHOIS einsehbar ist. |
| IDLETIME | [USER] | Zeigt die Idletime eines Users an. (wie bei WHOIS, nur ohne die restlichen Zeilen) |
| UNIXTIME | Zeigt die aktuelle Uhrzeit des Servers im Unixtime-Format an. mehr... |
Seltener gebrauchte Standard-Befehle
Die folgenden Befehle gehören zum Befehlssatz des IRC-Grundstandard, werden jedoch selten gebraucht.| Befehl | gebräuchliche Parameter/Syntax | Wirkung |
|---|---|---|
| LUSERS | [Servername] | Zeigt eine kleine Statistik des angegebenen Servers an. |
| TIME | Gibt die aktuelle Uhrzeit des Server wieder. mehr... | |
| VERSION | [Servername] | Zeigt die Version des angegebenen Servers an. mehr... |
| LINKS | Gibt an, welche Server im Netz wie miteinander verlinkt sind. | |
| ADMIN | [Servername] | Gibt Informationen zur Administration des angegebenen Servers aus. |
| NAMES | [#Channel] | Zeigt die Benutzer eines Channels an. mehr... |
| USERHOST | [User] | Gibt Kurzinfos zum angegebenen User aus. |
| INFO | Zeigt eine Info-Seite zum IRC-Server an. | |
| MOTD | [Servername] | Zeigt die MOTD des Servers an. |
| PROTOCTL | Aktiviert ein bestimmtes Protokoll. mehr... |
Details zu den Befehlen
PRIVMSG
Alle 'normalen' Textmeldungen an anderen User werden über den PRIVMSG-Befehl verschickt. Mögliches Ziel kann ein einzelner User sein oder ein kompletter Channel. Im letzteren Fall wird der Text bei allen Usern im Channel angezeigt (sofern keine besonderen Chanmodes gesetzt sind), jedoch nicht bei einem selbst. Eine Rückmeldung gibt es nur, wenn die Textmeldung niemanden erreicht hat (z.B. User nicht anwesend, Sprechen im Channel nicht erlaubt etc.).Es können auch mehrere Ziele für eine Textmeldung angegeben werden, diese werden dann einfach durch ein Komma getrennt. Beispiel:
PRIVMSG #chan,user1,user2 :hallo
NOTICE
Die Notice ist eine andere Art, eine Textmeldung zu übermitteln. Die Syntax ist mit PRIVMSG identisch. Notices werden in der Regel von Bots benutzt, auch Nachrichten die direkt vom Server automatisch generiert werden, werden oft als Notice versand. Als Notice versandte Meldungen werden in den meisten Clients auffälliger dargestellt als eine PRIVMSG.NICK
Mit diesem Befehl wird eine Anforderung an den Server geschickt, das eigene Nick zu ändern. Ist der Nick-Wechsel möglich, kommt die Meldung, dass der User jetzt anders heißt, andernfalls kommt eine Fehlermeldung zurück.LIST
LIST zeigt eine Liste fast aller Channel. Gezeigt werden nicht die Channel, in denen Chanmode s (Secret) gesetzt ist (sofern man nicht selbst drin ist). Von Channeln mit gesetztem Chanmode p (Private) wird nur die Userzahl angezeigt. Bei allen anderen Channeln wird Channame, Userzahl und aktuelles Topic gezeigt.Es ist möglich, die Ausgabe der Liste zu filtern, folgende Filter stehen dazu zur Verfügung:
| Filtersyntax | gezeigt werden nur Channel... |
|---|---|
| >Userzahl | bei denen die Userzahl höher ist als die angegebene Zahl |
| <Userzahl | bei denen die Userzahl kleiner ist als die angegebene Zahl |
| C>Minuten | die vor weniger Minuten als der angegebenen Minutenzahl geöffnet wurden |
| C<Minuten | die vor mehr Minuten als der angegebenen Minutenzahl geöffnet wurden |
| T>Minuten | deren Topic vor mehr Minuten geändert wurde, als angegeben |
| T<Minuten | deren Topic vor weniger Minuten geändert wurde, als angegeben |
| *maske* | bei denen die Maske aufs Topic oder den Channelnamen passt |
| !*maske* | bei denen die Maske aufs Topic oder den Channelnamen nicht passt |
JOIN
Mit JOIN kann versucht werden, Channel zu betreten. Sollen mehrere Channel gleichzeitig gejoint werden, werden die einzelnen Channelnamen durch Komma getrennt hintereinander angegeben. Channel mit einem Kennwort (Chanmode k) können betreten werden, indem das Kennwort als weiteres Wort dahinter angegeben wird. Beispiel:JOIN #channel passwort Kann ein angegebener Channel nicht betreten werden, wird eine Fehlermeldung zurückgeliefert, die auch den Grund angibt, der das Betreten verhindert. Ist Chanmode c gesetzt, wird zusätzlich den Ops im Channel der Join-Versuch angezeigt.
Eine weitere Besonderheit ist JOIN 0 . Damit werden alle Channel verlassen.
PART
Zum Verlassen eines Channels wird der PART-Befehl benutzt. Wie bei JOIN können mehrere Channel angegeben werden. Zusätzlich kann eine Begründung angegeben werden, indem sie einfach dahintergeschrieben wird:PART #channel1,#channel2 :will nicht mehr
MODE
Mit dem MODE-Befehl können User- oder Channelmodes verändert werden. Wird ein Nick als erster Parameter angegeben, werden Usermodes verändert, wird ein Channel angegeben, Channelmodes.Als D-T-Net-Erweiterung besteht auch die Möglichkeit, nur eine Modeänderung anzugeben (z.B. /MODE +vl), in so einem Fall wird von einem Usermode-Change für's eigene Nick ausgegangen.
KICK
Mit dem KICK-Befehl können Ops andere User aus dem Channel 'werfen'. Gekickt werden kann jedoch nicht der Founder oder DTN-Sponsored-Bots.INVITE
Über den Invite-Befehl kann einem Benutzer eine INVITE-Meldung (Einladung) für einen bestimmten Channel verschickt werden. Generell kann man nur User in Channel inviten, in denen man selbst ist. Sind Chanmodes gesetzt, die das Betreten eines Channels verhindern können, ist der Invite-Befehl den Ops des Channels vorbehalten. Bestimmte Chanmodes können durch ein Invite dann übergangen werden, d.h. ein inviteter User kann den Channel joinen, obwohl ein Chanmode gesetzt ist, der das Betreten sonst verhindern würde.Die Anzeige eines Invites kann bei dem Inviteten mit dem Usermode n deaktiviert sein. In dem Fall erfolgt auch keine Rückmeldung, dass das Invite nicht angezeigt wurde. Um vor Invite-Flood zu schützen, gibt es ein übliches Invite-Limit von 5 Invites innerhalb von 40 Sekunden.
Abkürzungsbefehle IDENTIFY / CHANSERV / NICKSERV / MEMOSERV
Mit diesen 4 Befehlen können Befehle die Services übergeben werden. Es handelt sich dabei um Abkürzungen für /msg ChanServ, /msg NickServ etc.. Beim Identify-Befehl wird zunächst geschaut, ob als erster Parameter ein Channelname angegeben ist. In so einem Fall wird für diesen Channel identifiziert, andernfalls für den aktuellen eigenen Nickname.Ein Vorteil bei dieser Befehlsgruppe ist neben der Abkürzung der Befehle eine verstärkte Sicherheit, da durch interne Maßnahmen sichergestellt wird, dass die Befehle nur an Services übergeben werden können.
AWAY
Der Away-Befehl setzt eine Abwesenheits-Meldung, die vor allem im eigenen Whois angezeigt wird. Soll die Meldung entfernt werden, wird einfach nur der AWAY-Befehl ohne weitere Angaben geschickt. Alle User, die einen auf der Watch-Liste haben, bekommen eine Meldung über eine Änderung des Away-Status, sofern Awaywatch bei diesen Usern nicht deaktiviert ist.WHOIS
Mit dem Whois-Befehl können detailierte Informationen zu einem User eingeholt werden. Ein vollständiges Whois-Ergebnis sieht so oder ähnlich aus: (Unterstrichenes wird durch das jeweilige ersetzt)| Whoiszeile | Beschreibung |
|---|---|
| Nick Ident Host * :Realname | Nickname, Ident und Hostname (ggf. geshadet) des Users |
| echter Host: Host | Der tatsächliche Hostname, wenn Hostshading Hostshading aktiviert sein sollte (erscheint nur bei einem selbst) |
| ist ein registrierter Nickname | erscheint bei Usern, deren Nick bei NickServ registriert ist und für das sie sich identifiziert haben |
| ist ein DAU | erscheint, wenn Usermode d gesetzt wurde |
| Info: Infotext | erscheint, wenn ein Info-Text mit /setinfo gesetzt wurde |
| Channel | alle sichtbaren Channel, in denen sich der User gerade aufhält |
| Servername Beschreibung | Servername, auf dem sich der User aufhält, und dessen Beschreibung |
| Away | Sofern gesetzt, die Away-Message des Users |
| IRCOP-Status | Erscheint nur bei IRC-Ops und sagt aus, welchen Status dieser hat (lokaler IRCOP, globaler IRCOP, Admin, Netzadmin) |
| nimmt deine Hilferufe entgegen | Erscheint bei HelpOps |
| Idlezeit in Sek. Logon-Zeitpunkt | Gibt an, wie lange der User nichts gesagt hat (Idletime) und den Zeitpunkt des Einloggens im Unix-Zeitformat (Sekunden nach 1980). Diese Zeile erscheint nur, wenn der User auf dem gleichen Server ist, wie man selbst, oder wenn Usermode l gesetzt ist. |
| End of /WHOIS list. | Deutet das Ende des Whois an |
WHO
Mit Who können Informationen zu einem oder mehreren Usern gleichzeitig abgefragt werden. Diese Informationen sind: (ein) Channel, Ident, Hostname, Server, Nick, Status, Entfernung und Realname. Von diesen Feldern können alle bis auf Channel, Status und Entfernung zur Abfrage benutzt werden. Dabei können die Wildcards/Joker * und ? benutzt werden. Ein * steht dabei für eine beliebige Anzahl Zeichen, ein ? für genau eines.Sollen beispielsweise alle User mit einem Host, der auf '.de' endet angezeigt werden, wäre der Abfragebefehl /who *.de. Sollte allerdings auch irgendein anderes Feld auf diese Abfrage passen, würden diese auch angezeigt. Wird ein 'o' hinter der Abfragemaske angegeben, werden nur Oper angezeigt, die auf diese Maske passen. Alle Oper könnte man sich also mit /who * o anzeigen lassen.
Wird bei Abfrage ein Channelname angegeben (hierbei sind keine Wildcards möglich), werden die User in diesem Channel angezeigt. Generell werden jedoch nur User angezeigt, die Usermode i nicht gesetzt haben, es sei denn, man ist mit ihnen in einem Channel.
Der Status setzt sich aus verschiedenen Einzelflags zusammen, die folgende Bedeutung haben:
| G | User ist away |
| H | User ist nicht away |
| * | User ist ein Oper |
| @ | User ist ChanOp im angegebenen Channel |
| + | User hat Voice im angegebenen Channel |
WHOWAS
Mit Whowas wird eine Liste ausgegeben, wann ein Nickname (quasi ein User) in letzter Zeit anwesend war. Es ist für jeden Server eine maximale Anzahl an Whowas-Einträgen festgelegt. Wird diese überschritten, werden die ältesten wieder entfernt.SETINFO
Mit diesem Befehl lässt sich ein Info-Text für einen selbst definieren, der dann im Whois angezeigt wird. Wird kein Text angegeben, wird eine ggf. gesetzte Info gelöscht. Die Info kann bestimmte Worte nicht enthalten, wie z.B. "Admin" oder "Oper".CUNOTICE
Eine normale Notice kann nur an einen Channel oder einen User gerichtet werden. Die CUNOTICE (ChanUserNotice) ist die Kombination aus beidem. Sie erreicht nur einen bestimmten User eines Channel. Das ist beispielsweise dann nützlich, wenn Bots eine Notice an jeden User beim Betreten schicken sollen, der User sie aber dem Channel zuordnen können soll, damit sie nur in diesem Channel dargestellt wird.CUNOTICEs werden standardmäßig wie eine Channotice beim Empfänger dargestellt. Dies ist der sogenannte Emulationsmodus. Wird /CUNOTICE on ausgeführt, werden CUNOTICES auch als CUNOTICE kenntlich an den Empfänger geschickt. /CUNOTICE off deaktiviert den Empfang von CUNOTICEs komplett, /CUNOTICE emu stellt wieder den Emulationsmodus ein.
Sytax-Erweiterung bei UNIXTIME / TIME / VERSION
Um die Unixtime/Time/Version von allen Servern gleichzeitig abzurufen, kann einfach ein * als Parameter angegeben werden. (D-T-Net Erweiterung)NAMES
Der NAMES-Befehl zeigt an, welche User sich im angegebenen Channel befinden. Ist man selbst in dem Channel, werden alle User gezeigt, andernfalls nur diejenigen, die Usermode i nicht gesetzt haben. Jedes Nick kann dabei noch ein @ oder ein + vorangestellt haben, wenn der User Op oder Voice hat. Hat ein User Op und Voice, wird dennoch nur ein @ gezeigt.Als D-T-Net-Erweiterung können können auch Founder, Op und Voice mit NAMES abgefragt werden, selbst wenn sie in Kombination vorkommen. Dazu muss vor den Channel bei der Abfrage ein $ (Dollarzeichen) gestellt werden, also beispielsweise
/NAMES $#mychan
Das Symbol für den Founder ist in der Ausgabe dann ebenfalls ein $.
PROTOCTL
Mit dem PROTOCTL-Befehl können Protokoll-Erweiterungen/Änderungen aktiviert werden. Der PROTOCTL-Befehl kann nur ein mal pro Login ausgeführt werden.Für Benutzer steht momentan nur die D-T-Net-Erweiterung NOPREFIX zur Verfügung. Wird sie aktiviert (mittels /PROTOCTL NOPREFIX (Groß-/Kleinschreibung bei NOPREFIX wichtig)), enthalten Nachrichten vom Server nur noch ein verkürztes Prefix. Das Prefix ist ein Teil, der fast jeder Nachricht vorangestellt ist, und bezeichnet ihren Ursprung.
Beispiel: :bernd!indy@p123.meinisp.net PRIVMSG #bla :hallo
Fett ist hierbei das Prefix, das aus den Teilen Nick, Ident und Host besteht. Ist NOPREFIX aktiv, wird das Prefix auf nur das Nick verkürzt, also ":bernd" im Beispiel.
Dadurch ist es möglich, Traffic einzusparen.


