# Bouncer

Als Bouncer (kurz: BNC) im IRC wird ein Programm bezeichnet, das zwischen einem IRC-Client und IRC-Server vermitteln kann, und somit als Proxy arbeitet.
Das Hauptziel der meisten Bouncer ist jedoch nicht die reine Vermittlung zwischen einem Client und einem Server, sondern das möglichst dauerhafte Aufrechterhalten einer Verbindung zu einem IRC-Server bzw. einem oder mehreren IRC-Netzwerken. Da in etlichen IRC-Netzwerken nach dem Ausloggen Privilegien in Channels verloren gehen und der Nickname von jedem anderen benutzt werden kann, ist die einzige Möglichkeit, einen Nickname oder Channel-Privilegien zu „reservieren“, mit Hilfe des Bouncers praktisch dauerhaft eingeloggt zu bleiben. Aus diesem Grund laufen Bouncer-Programme üblicherweise auf einem Server im Internet. Der Benutzer muss bei Verwendung des Bouncers nicht mehr permanent online sein.
Andere Gründe für den Einsatz von Bouncern sind:
* Schutz des Client-Rechners vor Übergriffen, z. B. einer DoS-Attacke oder der Anwendung von Exploits. Da aus Sicht des IRC-Servers und somit den Nutzern im IRC nur die IP-Adresse des Bouncer-Hostname bekannt ist, richten sich Angriffe nur gegen diesen.
* Im IRC mit einem anderen DNS-Name aufzutreten (nämlich dem des Bouncer-Hosts), der – über die rein technische Notwendigkeit hinaus – einen bestimmten Sinn ergibt, z. B. einen lustigen, kuriosen oder leeten Text. Anbieter mietbarer Bouncer haben oft eine große Auswahl an solchen DNS-Names, zwischen denen der Mieter meist zu jedem Zeitpunkt und beliebig oft wechseln kann.
* Der indirekte Aufbau einer Verbindung zum Server, wenn das direkte Verbinden aufgrund einer restriktiven Firewall o. ä. nicht möglich ist.
* der Aufbau einer verschlüsselten Verbindung von öffentlichen Netzwerken (z. B. WLANs), da viele IRC-Netzwerke eigene SSL-Server aufgrund von Kapazitätsproblemen nicht anbieten.
* Das Halten von DCC-Verbindungen. Da hier die Verbindung zwischen Bouncer und Client aufgebaut wird, kann ein Bouncerbenutzer offline gehen, während sein Bouncer die DCC-Verbindung hält.
* Zwischenspeicherung von Channel- und privaten Nachrichten bei Abwesenheit.
* Anonymität. Da die IP-Adresse in der Regel hinter dem Bouncer verborgen ist, ist der Chatter nicht direkt zurückzuverfolgen.
Ausgereiftere Bouncer bieten diverse Extras an, beispielsweise die automatische „Verteidigung“ der Nicks und Channel vor Fremden oder das Verteilen des Channel-Operator-Status (ChanOP) an vertraute Benutzer, eine Partyline (vom IRC-Server unabhängiger Chat nur zwischen den Benutzern eines Bouncers), automatischer Wechsel zum vorteilhaftesten Server innerhalb eines IRC-Netzwerkes und viele andere.

## Bouncer-Software

Es gibt verschiedene Bouncer-Programme, welche sich hauptsächlich in ihren Features unterscheiden. Es folgt eine unvollständige Liste. Alle aufgeführten Programme sind quelloffen.
* ezbounce ist ein Bouncer, welcher SSL-verschlüsselte Verbindungen, IPv6 und Chatlogs unterstützt.
* psyBNC ist ein Bouncer, welcher symmetrisch verschlüsselte Gespräche, SSL-verschlüsselte Verbindungen, Aufzeichnung von Querys in Abwesenheit des Nutzers sowie IPv6 unterstützt. Man kann mehrere psyBNC-Instanzen zu einem „Botnet“ mit einer gemeinsamen Partyline verbinden. psyBNC kann durch eine eigene Skriptsprache erweitert werden.
* shroudBNC (sBNC) unterstützt SSL-verschlüsselte Verbindungen und besitzt ein Webinterface. sBNC zeichnet Querys auf, wenn der Nutzer abwesend ist. sBNC lässt sich mit Tcl-Skripten und Modulen in C++ erweitern; einige vorgefertigte Tcl-Skripte sind auch im Quellpaket dabei.
* ZNC ist ein weiterer Bouncer. Auch er unterstützt SSL-verschlüsselte Verbindungen und besitzt ein Webinterface. ZNC lässt sich durch (bereits vorhandene) Module sowie Skripte in Perl und Tcl stark erweitern, unterstützt IPv6 und kann Channel loggen.

## Kritik an Bouncern

Bouncer setzen diverse Verhaltensweisen durch, die in einigen IRC-Netzwerken nicht gerne gesehen sind (diese Aufzählung bezieht sich auf den Funktionsumfang und Einsatz der meisten Bouncer):
* Netzwerke, die keine Möglichkeit zur Registrierung von Nicks und Channels bieten, tun dies oft bewusst aus der Haltung heraus, dass Nicks und Channel prinzipiell frei sind, also kein Nutzer ein dauerhaftes Anrecht hat, einen bestimmten Nick oder Channel zu benutzen. Bouncer streben jedoch diesem Prinzip entgegen, indem sie durch Dauerpräsenz Nicks und Channel ihrem „Besitzer“ freihalten.
* In Netzwerken mit IRC-Diensten, die das Registrieren von Nicks und Channels ermöglichen, sind die entsprechenden Schutzfunktionen der Bouncer größtenteils überflüssig und können das Netzwerk durch sinnlose Kämpfe mit IRC-Diensten unnötig belasten.
* Bouncer verstärken den Eindruck des Idlens im IRC, da Nutzer, die offline sind, trotzdem noch durch ihren Bouncer präsent gehalten werden, aber nicht aktiv sind. Das erschwert manchmal das Auseinanderhalten, wann ein Nutzer tatsächlich da ist oder nur durch seinen Bouncer vertreten wird.
* Generell, wie alle unbewachten Bots im IRC, bergen Bouncer die Gefahr, sich in Abwesenheit des Besitzers unkontrolliert zu verhalten, ohne dass es rechtzeitig bemerkt und verhindert werden kann.