Iroffer Tutorial: Unterschied zwischen den Versionen

Aus Fansub-Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(https://iroffer.net/)
 
(70 dazwischenliegende Versionen von 17 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Iroffer''' ist eine weitverbreitete Software zum Anbieten von Dateien über sog. XDCC-Bots.
'''Iroffer''' ist eine weitverbreitete Software zum Anbieten von Dateien über sog. [[XDCC]]-Bots.
Hier wird im folgenden auf die Vorbereitung, Installation und Konfiguration eines solchen XDCC-Bots eingegangen.
Hier wird im folgenden auf die Vorbereitung, Installation und Konfiguration eines solchen XDCC-Bots eingegangen.


== Was ist Iroffer ? ==
== Was ist Iroffer ? ==


Iroffer ist eine Software die als sog. Fileserver (Dateiserver) im IRC agiert. Man kann es etwa mit einem Webserver oder einem FTP vergleichen, nur das hier nicht das HTTP- bzw FTP-Protokoll verwendet wird. Für den Transfer wird hier das DCC-Protokoll, welches ein Teil des IRC's ist benutzt. Im Gegensatz zu ähnlichen Programmen ist Iroffer kein Script, sondern ein eigenständiges ausführbares Programm. Es ist auf sehr hohe Leistungfähigkeit bei kleinem Systemresourcenverbraucht (CPU, RAM, HDD) ausgelegt. Iroffer ist für die Betriebsysteme Windows sowie Unix bzw. Linux erhältlich.
Iroffer ist eine Software, die als sog. Fileserver (Dateiserver) im [[IRC]] agiert. Man kann es etwa mit einem Webserver oder einem FTP-Server vergleichen, nur dass hier nicht das HTTP- bzw. FTP-Protokoll verwendet wird. Für den Transfer wird hier das DCC-Protokoll, welches ein Teil des IRC's ist, benutzt. Im Gegensatz zu ähnlichen Programmen ist Iroffer kein Script, sondern ein eigenständiges ausführbares Programm. Es ist auf sehr hohe Leistungfähigkeit bei niedrigem Verbrauch an Systemresourcen (CPU, RAM, HDD) ausgelegt. Iroffer ist für die Betriebsysteme Windows sowie Unix bzw. Linux erhältlich.


== Was brauche ich für meinen Bot und wo bekomme ich es ? ==
== Was brauche ich für meinen Bot und wo bekomme ich es ? ==


Man benötigt einen Computer mit breitbandigem Anschluss (DSL sollte es mindestens sein), der über genügend Uploadbandbreite verfügt (>=16 kb/s) oder einen vServer/Rootserver. Auf diesem PC sollte ein *nix bzw. Windows laufen, sowie je nach Menge der zu sharenden Datei entsprechend Speicherplatz. Für Iroffer selbst kann man etwa 3 MB rechnen, der Rest sind nur die zu sharenden Dateien. Wenn dies alles vorhanden ist, brauchen wir noch die entsprechende Irofferversion für unser Betriebsystem.
Man benötigt einen Computer mit breitbandigem Anschluss (DSL sollte es mindestens sein), der über genügend Uploadbandbreite (>=16 kb/s) verfügt, oder einen vServer bzw. Rootserver. Auf diesem PC sollte ein *nix bzw. Windows laufen, sowie je nach Menge der zu sharenden Dateien entsprechend Festplattenspeicherplatz. Für Iroffer selbst kann man etwa 3 MB rechnen, der Rest sind nur die zu sharenden Dateien. Wenn dies alles vorhanden ist, brauchen wir noch die entsprechende Iroffer-Version für unser Betriebsystem.


Iroffer original:
Iroffer original:
Zeile 15: Zeile 15:


Iroffer Dinoex Mod:
Iroffer Dinoex Mod:
*für Linux (Source Code): [http://iroffer.dinoex.net/iroffermodDinoex.latest.tar.gz iroffermodDinoex.latest.tar.gz]
*für Linux (Source Code): [https://iroffer.net/iroffer-dinoex-snap.tar.gz iroffer-dinoex-snap.tar.gz]
*für Winodws (Binary): [http://iroffer.dinoex.net/iroffer1.4.b02modDinoex1.23-win32.zip iroffer1.4.b02modDinoex1.23-win32.zip]
*für Windows (Binary): (eingestellt).
 
Die Dinoex Mod enthält verschiedene Modifikationen gegenüber dem originalen Iroffer, die wahrscheinlich am herrausrangenste ist die Möglichkeit, Dateigruppen anzulegen und damit die Datein auf dem Bot zu sortieren. Aber des ist nicht alles, wer es genau wissen möchte, kann sich die [http://iroffer.dinoex.net/modDinoex.README Readme] durchlesen. Diese Mod ist neben der Originalversion die am häufigsten anzutreffende Modifikation in der deutschen Fansubscene.


Die Dinoex Mod enthält verschiedene Modifikationen gegenüber dem originalen Iroffer; die wahrscheinlich herausragendste davon ist die Möglichkeit, Dateigruppen anzulegen und damit die Dateien auf dem Bot zu ordnen. Aber das ist nicht alles - wer es genau wissen möchte, kann sich das [http://iroffer.net/modDinoex.README Readme] durchlesen. Diese Mod ist neben der Originalversion die am häufigsten anzutreffende Modifikation in der deutschen Fansubszene.


== Installation ==
== Installation ==
Zeile 26: Zeile 25:




Wenn wir die Sourcen heruntergeladen haben von der gewünschten Version, geht es weiter wie folgt:
Nachdem wir die Sourcen der gewünschten Version heruntergeladen haben, geht es weiter wie folgt:


*Entpacken der Sourcen & wechseln ins neue Verzeichnis:
*Entpacken der Sourcen & wechseln ins neue Verzeichnis:
<pre>
tar -xzvf <name der heruntergeladenen datei>
tar -xzvf <name der heruntergelandenen datei>
cd <name des entstandenen verzeichnisses> </pre>
cd <name des entstandenen verzeichnisses> </pre>
*Starten des Konfigurationsscripts, welches uns eine make-Datei für unser System erstellt:
*Starten des Konfigurationsscripts, welches uns eine make-Datei für unser System erstellt:
<pre>./Configure</pre>
./Configure
*Starten des Kompilationsprozesses, wenn keine Fehler beim durchlaufen des Konfigurationsscripts auftraten:
*Starten des Kompilationsprozesses, wenn keine Fehler beim Durchlaufen des Konfigurationsscripts auftraten:
<pre>make</pre>
make
*Wenn gewünscht, können wir nun die auführbare Datei systemweit verfügbar in /usr/local/bin installieren (optional und es werden hierfür root Previlegien benötigt):
*Wenn gewünscht, können wir nun die ausführbare Datei systemweit verfügbar in /usr/local/bin installieren (optional und es werden hierfür root-Privilegien benötigt):
<pre>make install</pre>
make install
*Wenn Iroffer nicht systemweit installiert wird, bitte die ausführbare Datei "iroffer" aus dem Sourcenverzeichnis zum gewünschten Ausführungsort verschieben.
*Wenn Iroffer nicht systemweit installiert wird, bitte die ausführbare Datei "iroffer" aus dem Sourcenverzeichnis zum gewünschten Ausführungsort verschieben.


Damit ist die Installation von Iroffer unter Linux abgeschlossen und wir können uns der Konfiguration unseres Bots zuwenden.
Damit ist die Installation von Iroffer unter Linux abgeschlossen und wir können uns der Konfiguration unseres Bots zuwenden.
Es gibt noch eine [https://iroffer.net/INSTALL-linux-de.html Kurzanleitung] zum Installieren mit Webliste.


=== Windows ===
=== Windows ===
Zeile 87: Zeile 87:
##############################################################################
##############################################################################
###                            - state file -                            ###
###                            - state file -                            ###
### Diese Datei dient als temporäres Datenlager für statistische Daten    ###
### Diese Datei dient als allgemeines Datenlager für die bereitgestellten ###
### zwischen den Neustarts von Iroffer                                     ###
### Dateien und die dazugehörigen statistischen Daten zwischen den Neustarts   ###
###  von Iroffer,                                      ###
statefile mybot.state
statefile mybot.state


##############################################################################
##############################################################################
###                        - xdcc listing file -                          ###
###                        - xdcc listing file -                          ###
###  In diese Datei wird ein vollständiges XDCC-Listing exportiert, umzb.  ###
###  In diese Datei wird ein vollständiges XDCC-Listing exportiert, um z.B.  ###
###  als Packliste auf einer Webseite zu dienen, oder für andere Zwecke    ###
###  als Packliste auf einer Webseite zu dienen, oder für andere Zwecke    ###
#xdcclistfile mybot.txt
#xdcclistfile mybot.txt
Zeile 114: Zeile 115:
###                              Wingate Gateway an <ip>:<port>          ###
###                              Wingate Gateway an <ip>:<port>          ###
###  custom <ip> <port>        - verbindet den Bot zum Server durch      ###
###  custom <ip> <port>        - verbindet den Bot zum Server durch      ###
###                              anwendung benutzerdefiniert Kommandos   ###
###                              Anwendung benutzerdefinierter Kommandos ###
###                              mehr dazu weiter unten bei proxyinfo    ###
###                              mehr dazu weiter unten bei proxyinfo    ###
### die meisten leute werden im Normalfall "direct" benutzen              ###
### die meisten Leute werden im Normalfall "direct" benutzen              ###
connectionmethod direct
connectionmethod direct


Zeile 122: Zeile 123:
##############################################################################
##############################################################################
###                      - custom connection info -                      ###
###                      - custom connection info -                      ###
### wenn "connectionmethod custom" verwendet wird,     ###
### wenn "connectionmethod custom" verwendet wird, kann mittels proxyinfo  ###
### custom lines for use with your proxy/gateway/redirector. Place "$s"    ###
### die nötige Befehlszeile für die Verbindung mit dem Proxy/Gateway/etc  ###
### and "$p" where the server and port should be placed in your text      ###
### angegeben werden, als Platzhalter für Server und Port stehen $s und $p ###
### zur Verfügung                                                          ###
#proxyinfo connect $s:$p
#proxyinfo connect $s:$p
#proxyinfo blah blah
#proxyinfo blah blah
Zeile 131: Zeile 133:
##############################################################################
##############################################################################
###                        - onjoin information -                        ###
###                        - onjoin information -                        ###
### you can use server_join_raw to send raw IRC commands to the server     ###
### Mittels server_join_raw, server_connected_raw und channel_join_raw     ###
### when connected (sent after NICK, USER, before MODE )                  ###
### können RAW-IRC-Commands an den Server zu verschiedenen Zeitpunkten    ###
###                                                                       ###
### während des Verbindungsaufbaus übergeben werden.                      ###
### you can use server_connected_raw to send raw IRC commands to the      ###
### server_join_raw wird ausgeführt wenn NICK, USER gesendet, vor MODE    ###
### server when connected (sent after MODE, before JOIN )                  ###
### server_connected wird ausgeführt wenn MODE gesendet, vor JOIN         ###
###                                                                       ###
### channel_join_raw wird ausgeführt wenn ein channel gejoint wird        ###
### you can use channel_join_raw to send raw IRC commands to the          ###
### alle 3 Kommandos können mehrfach eingesetzt werden                    ###
### server when you join a channel (multiple instances can be configured  ###
### if needed)                                                            ###
###                                                                        ###
### multiple instances of all 3 can be configured if needed                ###
#server_join_raw
#server_join_raw
#server_connected_raw
#server_connected_raw
Zeile 149: Zeile 147:
##############################################################################
##############################################################################
###                            - nickserv -                              ###
###                            - nickserv -                              ###
### if you would like to register with nickserv add settings here          ###
### Wenn der Nick gegen den NickServ registriert ist, kann hier das Pass-  ###
#nickserv_pass mypass
### wort eingetragen werden, damit er sich beim Joinen des Servers von    ###
### selbst identifiziert
nickserv_pass Dussel




##############################################################################
##############################################################################
###                        - server information -                        ###
###                        - server information -                        ###
### List server/ports in the form "server irc.domain.com 6667". Port is   ###
### Liste der Server und Ports im Aufbau: "server irc.domain.com 6667".    ###
### optional (default 6667)                                                ###
### Die Angabe des Ports ist optional, Standard ist 6667.                  ###
### Multiple servers can be specified                                      ###
### Mehrere Server können (und sollten) angegeben werden                  ###
server irc.efnet.net
server irc.sexy-power-world.de
 
##############################################################################
##############################################################################
###                        - channels (upto 50) -                        ###
###                        - channels (upto 50) -                        ###
### channel format:                                                       ###
### Channelformat:                                                         ###
### "channel <channel> [-plist <time>] [-plistoffset <time>]              ###
### "channel <channel> [-plist <time>] [-plistoffset <time>]              ###
###    [-pformat <full|minimal|summary>] [-key <key>] "                    ###
###    [-pformat <full|minimal|summary>] [-key <key>] "                    ###
### plist: time is number of minutes between plists.                      ###
### plist: Zeit (min) zwischen den einzelnen Announcen                    ###
### plistoffset: time is number of minutes to offset list                  ###
### plistoffset: Zeit (min) um die die Announce versetzt wird              ###
### pformat: full is normal and default if pformat is not used            ###
### pformat: full zeigt alle Packs auf dem Bot und stellt den Standard dar ###
###          minimal is similar to full but removes some lines            ###
###          minimal stellt eine kleine Announce zusammen (ca. 5 Zeilen)  ###
###          summary displays only a 2 line summary                        ###
###          summary zeigt eine 2-Zeilen-Zusammenfassung an                ###
### key:    for +k channels, the key specified is used when joining      ###
### key:    für Channels, die den Modus +k (Key) haben; definiert das    ###
### using same or multiples of the same number plist time is recomended    ###
###         nötige Passwort für das Joinen des Channel                    ###
#channel #chan01
channel #~Sexy-Power-World -plist 28
#channel #chan02 -plist 14
#channel #chan02 -plist 14
#channel #chan03 -plist 28 -pformat minimal
#channel #chan03 -plist 28 -pformat minimal
Zeile 180: Zeile 179:
##############################################################################
##############################################################################
###                          - user information -                          ###
###                          - user information -                          ###
user_nick mybotDCC
### user_nick definiert den Nicknamen des Bots                            ###
### user_realname definiert den Text, den man mit /whois abfragen kann    ###
### user_modes definiert die Modi, die für den User gesetzt werden sollen  ###
user_nick HeX-01
user_realname My Bot
user_realname My Bot
user_modes +i
user_modes +i
Zeile 187: Zeile 189:
##############################################################################
##############################################################################
###                            - virtual hosts -                          ###
###                            - virtual hosts -                          ###
### If the computer you want to run iroffer on has multiple local IP       ###
### Wenn der Computer/Server mehr als eine lokale IP-Adresse hat, kann    ###
### addressses, you can run iroffer on any of those ip addresses.         ###
### mit local_vhost <ip> angegeben werden, welche davon genutzt werden soll. ###
### To automatically choose a local IP address leave undefined.           ###
### Falls Iroffer selbst wählen soll, einfach Option deaktiviert belassen. ###
### NOTE: You must use the IP address in x.x.x.x format not a DNS name.  ###
### Wichtig: Es muss eine IP angegeben werden, kein Domainname!!!          ###
#local_vhost 123.456.789.123
local_vhost 85.214.41.103


##############################################################################
##############################################################################
###                      - incoming TCP connections -                      ###
###                      - incoming TCP connections -                      ###
### If you are behind a firewall that you control and want to have iroffer ###
### Wenn Iroffer hinter einer Firewall gestartet werden soll und die Mög-  ###
### use a specified range for tcp ports for incoming connections set       ###
### lichkeit besteht, Ports zu öffnen bzw zu forwarden, kann mittels       ###
### tcpstartrange to the first port used (ports will be used from that    ###
### tcprangestart der erste Port des Bereiches für Iroffer angegeben      ###
### number upwards as needed (usually 1 per transfer attempt).             ###
### werden. Die Menge nötiger Ports entspricht der maximalen Zahl Send-    ###
### If undefined, incoming tcp ports are automatically choosen by the OS. ###
### slots. Wenn nichts definiert ist, wählt das OS selbstständig die Ports ###
### für eintreffende TCP-Verbindungen.                                     ###
#tcprangestart 4000
#tcprangestart 4000


##############################################################################
##############################################################################
###                      - override unix loginname -                      ###
###                      - override unix loginname -                      ###
### Override your unix loginname. Will only work if identd isn't running.  ###
### Überschreibt den Unixlogin in der Ident, funktioniert nur ohne OIdent. ###
#loginname fakelogin
#loginname fakelogin


Zeile 224: Zeile 227:
##############################################################################
##############################################################################
###                        - maximum xdcc slots -                        ###
###                        - maximum xdcc slots -                        ###
slotsmax 20
### Anzahl gleichzeitiger Verbindungen zur Dateiübertragung.              ###
slotsmax 2


##############################################################################
##############################################################################
###                        - Queue Information -                          ###
###                        - Queue Information -                          ###
### Main Queue Size, set to 0 for no queue                                ###
### Größe der Warteschlange; 0 bedeutet keine Warteschlange.              ###
queuesize 10
queuesize 10


##############################################################################
##############################################################################
###                      - max transfers per person -                      ###
###                      - max transfers per person -                      ###
### maximum transfers per person at a time                                ###
### maximale Anzahl gleichzeitiger Übertragungen pro Person                ###
maxtransfersperperson 1
maxtransfersperperson 1


##############################################################################
##############################################################################
###                    - max queued items per person -                    ###
###                    - max queued items per person -                    ###
### maximum number of times a user can be in a queue simultaneously        ###
### Maximale Anzahl gleichzeitiger Warteschlangeneinträge                  ###
maxqueueditemsperperson 2
maxqueueditemsperperson 2


##############################################################################
##############################################################################
###                - add/chfile command helper directory -                ###
###                - add/chfile command helper directory -                ###
### optional directory where iroffer will look after trying normal        ###
### Hier kann ein optionales Dateiverzeichnis angegeben werden, wo Iroffer ###
### relative/absolute paths when using the add or chfile admin command.   ###
### nach Dateien sucht, die mittels add/chfile hinzugefügt werden.         ###
### Add/chfile will first try to open the file using just the argument you ###
### Standardmäßig sucht Iroffer im Verzeichnis, in dem es ausgeführt wird. ###
### provide to the command, and if that fails it will try again with      ###
filedir /home/1/files
### filedir added to the front of the argument.                           ###
#c:\iroffer\files
#filedir /home/me/files


##############################################################################
##############################################################################
###                  - restrict xdcc list and xdcc send -                  ###
###                  - restrict xdcc list and xdcc send -                  ###
### if set, xdcc list and/or xdcc send|info will be restricted to users    ###
### Wenn restrictlist gesetzt wird, kann xdcc list und xdcc info nur von  ###
### who are on a known channel. If a user is not on one of the known      ###
### jemandem ausgeführt werden, der sich auch im Channel befindet.         ###
### channels they will not be able to list and/or get packs                ###
### Wenn restrictprivlist gesetzt wird, kann der Bot nicht mehr via xdcc  ###
### restrictprivlist disables all private xdcc list requests completely.   ###
### list gelistet werden und gibt, falls es jemand versucht, die mit      ###
### use restrictprivlistmsg to change the message that restrictprivlist   ###
### restrictprivlistmsg gesetzte Mitteilung aus.                           ###
### sends                                                                  ###
### restrictsend bedeutet, dass nur wer im Channel ist, Dateien vom Bot   ###
### empfangen kann; sobald er ihn verlässt, wird der Send abgebrochen.    ###
#restrictlist
#restrictlist
#restrictprivlist
#restrictprivlist
#restrictprivlistmsg Wait for public list in the channel.
restrictprivlistmsg nur wer im Channel ist!
#restrictsend
#restrictsend


##############################################################################
##############################################################################
###                      - channel xdcc commands -                        ###
###                      - channel xdcc commands -                        ###
### if set, iroffer will respond to xdcc requests sent to a channel in    ###
### wenn respondtochannelxdcc gesetzt ist, reagiert der Bot auf Kommandos, ###
### addition to xdcc requests sent to iroffer directly.                   ###
### die in den Channel gepostet werden.
respondtochannelxdcc
respondtochannelxdcc


##############################################################################
##############################################################################
###                      - channel !list command -                        ###
###                      - channel !list command -                        ###
### if set, iroffer will respond to !list requests sent to a channel      ###
### wenn respondtochannellist gesetzt wird, reagiert der bot auf !list     ###
#respondtochannellist
#respondtochannellist


##############################################################################
##############################################################################
###                  - bypass queue for small files -                    ###
###                  - bypass queue for small files -                    ###
### If someone requests a small file, bypass queue and max sends.  If the  ###
### Wenn jemand eine Datei anfordert, die kleiner oder gleich dem          ###
### offered file is under this size (in KB), send immediately.            ###
### definierten Wert (in KB) ist, wird diese unabhängig von der            ###
### Slotseinstellung gesendet.
#smallfilebypass 0
#smallfilebypass 0


##############################################################################
##############################################################################
###                      - authorized download hosts -                    ###
###                      - authorized download hosts -                    ###
### Specify who can download from this botUse *!*@* to allow anyone.    ###
### Hiermit kann eingeschränkt werden, wer vom Bot downloaden darf. Ange- ###
### Multiple hostmasks can be specified                                    ###
### geben werden Hostmasken. Um allen den Download zu erlauben, einfach   ###
### wild cards are:                                                       ###
### *!*@* als Hostmask einsetzen.                                          ###
###  * = 0 or more characters,  ? = 1 character,  # = any positive integer ###
### Jokerzeichen sind:                                                     ###
downloadhost *!*@*
###  * = 0 oder mehr Zeichen,  ? = 1 Zeichen,  # = jede positive Zahl      ###
#downloadhost *!~me@*.domain.com
#downloadhost *!~me@*.domain.com
#downloadhost *!me@192.168.10.#
#downloadhost *!me@192.168.10.#
 
downloadhost *!*@*


##############################################################################
##############################################################################
Zeile 297: Zeile 302:
##############################################################################
##############################################################################
###                      - Allow with low bandwidth -                      ###
###                      - Allow with low bandwidth -                      ###
### If packs are queued, and the bandwidth usage is below this amount, a  ###
### Wenn Pakete in der Warteschlange sind und der Verbrauch der Band-      ###
### queue'd person will be sent their pack. (K/sec)                        ###
### breite den vorgegebenen Wert unterschreitet, wird ein zusätzlicher    ###
### WARNING! do not set this amount to an unreasonably high number!       ###
### Send gestartet für einen Nutzer aus der Warteschlange.                 ###
### Achtung: Diesen Wert nicht unsinnig niedrig oder hoch setzen!
#lowbdwth 15
#lowbdwth 15


##############################################################################
##############################################################################
###                        - transfer min speed -                        ###
###                        - transfer min speed -                        ###
### Per-transfer min speed in KB/sec used unless 'chmins' set per pack.   ###
### Mindestgeschwindigkeit beim Downloaden, sonst wird der Download abge- ###
### brochen.                                                               ###
#transferminspeed 10
#transferminspeed 10


##############################################################################
##############################################################################
###                        - transfer max speed -                        ###
###                        - transfer max speed -                        ###
### Per-transfer max speed in KB/sec used unless 'chmaxs' set per pack.    ###
### Maximalgeschwindigkeit beim Downloaden, sonst wird künstlich gebremst  ###
#transfermaxspeed 50
#transfermaxspeed 50


Zeile 332: Zeile 339:
##############################################################################
##############################################################################
###                          - autosend feature -                          ###
###                          - autosend feature -                          ###
### Set if you want iroffer to automatically send a pack when someone says ###
### Wenn autosendpack gesetzt wird, schickt bei der Bot, sobald ein        ###
### a certain word pubically in a channel.                                 ###
### Schlüsselwort im Channel aufkommt, das definierte Pack an die Person. ###
### autosendpack <pack#> <trigger> <message ...>                          ###
###           === DIE MEISTEN WERDEN DIES NICHT BENÖTIGEN! ===             ###
###              == MOST USERS WILL NOT NEED THIS FEATURE ==             ###
###         === HOLT EUCH ERST VOM CHANNEL OP DIE ERLAUBNIS! ===          ###
###             == GET PERMISSION FROM YOUR CHANNEL OPS FIRST ==          ###
#autosendpack <packnr> <schlüsselwort> <mitteilung>
#autosendpack 1 !rules Sending you the rules.
#autosendpack 1 !rules Sending you the rules.


##############################################################################
##############################################################################
###                            - headline -                              ###
###                            - headline -                              ###
### Put a headline at the top of all xdcc lists                            ###
### Überschrift für alle XDCC-Lists                                        ###
#headline New Stuff Just Added!!
headline New Stuff Just Added!!


##############################################################################
##############################################################################
###                          - credit line -                              ###
###                          - credit line -                              ###
### Put a credit at the end of your xdcc list                              ###
### Fußnote für alle XDCC-Lists                                            ###
#creditline Brought to you by me
creditline Brought to you by me


##############################################################################
##############################################################################
###                        - index bot notify -                          ###
###                        - index bot notify -                          ###
### if you want iroffer to periodically msg some nick for indexing or some ###
### Wenn iroffer periodisch jemandem eine Mitteilung schicken soll für    ###
### other purpose use periodicmsg in the form:                             ###
### Indizierungszwecke oder anderen Bedarf, kann perdidocmsg verwendet    ###
### "periodicmsg <nick> <num minutes> <message ...>                       ###
### werden:                                                               ###
### "periodicmsg <nick> <zeit in min> <mitteilung>
#periodicmsg nick 10 index me
#periodicmsg nick 10 index me


##############################################################################
##############################################################################
###                        - remote admin info -                          ###
###                        - remote admin info -                          ###
### Remote commands can only be issued by a nick with a matching hostmask  ###
### Die Admincommands können nur von jemanden ausgeführt werden, dessen    ###
### and knows the adminpass Remote commands are issued by dcc chat or by  ###
### hostmaske auf die Vorgabe passt und der das nötige Kennwort kennt.    ###
### /msg nickDCC admin 'adminpass' 'command' adminhost's are full          ###
### Diese Kommandos können entweder via DCC-Chat oder aber via            ###
### hostmasks: nick!user@host don't forget a "~" if you don't use identd  ###
### /msg <botnick> admin <adminpass> <kommando> ausgeführt werden.        ###
### wild cards are:                                                       ###
### adminhost benötigt eine komplette hostmask im aufbau nick!ident@host   ###
###  * = 0 or more characters,  ? = 1 character,  # = any positive integer ###
### Falls kein identd benutzt wird, nicht vergessen, ein "~" hinzuzufügen! ###
### For security, your adminpass must be stored in the config file        ###
### Jokerzeichen sind:                                                     ###
### encrypted. To generate an encrypted password run iroffer with the    ###
###  * = 0 oder mehr Zeichen,  ? = 1 Zeichen,  # = jede positive Zahl      ###
### "-c" flag and follow the instructions.                                 ###
### Aus Sicherheitsgründen wird das Adminpasswort verschlüsselt in der    ###
adminpass add_your_encrypted_password_here
### Konfigurationsdatei hinterlegt. Um ein Password zu generieren, bitte  ###
### Iroffer mit Option "-c" ausführen und den Instruktionen folgen.       ###
#adminpass add_your_encrypted_password_here
adminhost *!~me@*.domain.com
adminhost *!~me@*.domain.com
adminhost *!me@192.168.10.#
adminhost *!me@84.183.243.#


##############################################################################
##############################################################################
###                          - upload directory -                          ###
###                          - upload directory -                          ###
### If you want iroffer to accept DCC transfers (upload) define one or     ###
### Soll der Bot DCC-Uploads akzeptieren, müssen hier die Uploadhosts,     ###
### more uploadhosts and define an uploaddir where files should be saved.  ###
### ein Uploadverzeichnis und die maximale Größe in MB für einen Upload   ###
### uploadmaxsize if the maximum size in MB of any individual transfer,   ###
### definiert werden (0 entspricht keinem Limit bei der Uploadgröße).     ###
### files over that size will be rejected (0 for no limit).               ###
### Jokerzeichen sind:                                                     ###
### wild cards are:                                                       ###
###  * = 0 oder mehr Zeichen,  ? = 1 Zeichen,  # = jede positive Zahl      ###
###  * = 0 or more characters,  ? = 1 character,  # = any positive integer ###
### ACHTUNG!! Für das Uploaden sollte ein eigenes Verzeichnis angelegt    ###
### WARNING!! specify a directory used exclusivly for uploads. This will  ###
### ACHTUNG!! werden, um Überschreiben bzw. Erweitern wichtiger Dateien zu ###
### WARNING!! prevent users from creating/appending important files      ###
### ACHTUNG!! verhindern bzw. Missbrauch und Exploits nicht zu ermöglichen ###
#uploadhost *!~me@*.domain.com
#uploadhost *!~me@*.domain.com
#uploadhost *!me@192.168.10.#
#uploadhost *!me@192.168.10.#
#uploaddir /home/me/upload
#uploaddir /home/me/upload
#uploaddir c:\iroffer\upload
#uploadmaxsize 10
#uploadmaxsize 10


##############################################################################
##############################################################################
###                          - hide OS information-                        ###
###                          - hide OS information-                        ###
### If you do not want iroffer to show OS information in version and quit  ###
### Wenn Iroffer in den Versionsangaben und in seiner Quitmitteilung nicht ###
### messages enable this option                                            ###
### das Betriebsystem nennen soll, dann bitte diese Option einschalten.    ###
#hideos
hideos


##############################################################################
##############################################################################
###                              - log notices -                          ###
###                              - log notices -                          ###
### If defined, iroffer will log notice messages to the msglog            ###
### Wenn aktiviert, zeichnet Iroffer alle Notices im Nachichtenspeicher auf###
#lognotices
lognotices


##############################################################################
##############################################################################
###                          - timestamp console -                        ###
###                          - timestamp console -                        ###
### If defined, iroffer will place timestamps on all console output        ###
### Wenn definiert, setzt Iroffer eine Zeitmarke in der Konsole            ###
#timestampconsole
#timestampconsole


##############################################################################
##############################################################################
###                          - timestamp console -                       ###
###                          - quietmode -                               ###
### If defined, iroffer will suppress most informational messages to users ###
### Wenn definiert, unterdrückt Iroffer die meisten Info-Meldungen        ###
#quietmode
#quietmode


##############################################################################
##############################################################################
###                      - periodic notify time -                        ###
###                      - periodic notify time -                        ###
### How often should iroffer notify users of queue/bandwidth status        ###
### Legt fest, wie regelmäßig Iroffer-Nutzer über ihre aktuelle Platzierung###
### (in minutes)If not defined default is 5 minutes. Setting to 0      ###
### in der Warteschlange bzw. über die verbrauchte Bandbreite informiert.  ###
### disables notification entirely.                                        ###
### Standard ist 5 min; um diese Funktion vollständig zu deaktivieren,    ###
### setzt man das Zeitintervall auf 0.
#notifytime 5
#notifytime 5


##############################################################################
##############################################################################
###                        - punish slow users -                          ###
###                        - punish slow users -                          ###
### If a user is disconnected due to failing to meet a minspeed            ###
### Wenn ein Nutzer unter den Minimaldownloadspeed fällt, wird er bestraft,###
### requirement, punish them by disconnecting all transfers/queues and    ###
### indem alle Sends abgebrochen und er aus der Warteschlange entfernt wird.    ###
### ignoring them for n minutes                                            ###
### Durch diese Option kann er noch zusätzlich um die definierte Zeit (in  ###
### min) vom Bot ignoriert werden.
#punishslowusers 10
#punishslowusers 10


##############################################################################
##############################################################################
###                      - disable md5sum of files -                      ###
###                      - disable md5sum of files -                      ###
### By default, iroffer will calculate md5sums all offered files.  If you ###
### Standardmäßig berechnet Iroffer für alle angebotenen Dateien die MD5- ###
### want to disable this feature define 'nomd5sum' below.                 ###
### Prüfsumme. Zum Abstellen dieser Funktion diese Option setzen.
#nomd5sum
#nomd5sum


Zeile 430: Zeile 443:
##                                    End                                  ##
##                                    End                                  ##
##############################################################################</pre>
##############################################################################</pre>
Anhand der Informationen der einzelnen Punkte kann nun die Konfiguration Punkt für Punkt abgearbeitet werden. Wichtig:
*pidfile
*server
*channel
*filesdir
*adminhost
*adminpass
Dies sind die wichtigen Optionen, die für eine Minimalconfig gesetzt werden sollten. Alles weitere kann später noch nachkonfiguriert werden (wobei es besser ist, alles in einem Schritt zu erledigen ;). Man sollte beachten, dass ein Netzwerk nicht doppelt vorkommt, und dass nach einer network-Angabe immer die server-Angabe steht. Tut man dies nicht, ist es oft der Fall, dass sich eine Kopie zum IRC-Netzwerk verbindet, bei dieser wird dann eine 0 hinten am Nick drangehangen (Bsp.: XDCC|mybot0). Bei mir war es so (ich hatte bei der Beschreibung von der network-Angabe das Beispiel auskommentiert), dass das Original keinen Channel betreten hat, stattdessen aber die Kopie. Ich habe mir da stundenlang den Kopf darüber zerbrochen wieso das passiert ist. ^^
Alle Einstellungen des mod Dinoex sind in der [https://iroffer.net/beispiel.config beispiel.config] kurz erklärt.
== Starten von Iroffer ==
=== Linux ===
Nun, da die Konfiguration geschrieben ist, können wir Iroffer für einen ersten Testlauf starten. Wenn wir Iroffer ohne jegliche Parameter starten, bekommen wir in etwa folgende Ausgabe (Original & Mod sind hier gleich!):
<pre>deathserv:~ # iroffer
iroffer: no configuration file specifed
iroffer v1.4.b02 [20050512030219] mod by Dinoex 1.23 by Dinoex, see https://iroffer.net/
Usage: iroffer [-vc] [-bdkns] [-u user] [-t dir] configfile [ configfile ... ]
        -v        Print version and exit.
        -c        Generate encrypted password and exit.
        -d        Increase debug level
        -b        Go to background mode
        -k        Attempt to adjust ulimit to allow core files
        -n        No colors in foreground mode
        -s        No screen manipulation in foreground mode
        -u user  Run as user (you have to start as root).
        -t dir    Chroot to dir (you have to start as root).
</pre>
Für uns wichtig bzw. interessant sind die Parameter "-b", "-u <user>", "-t <dir>". Der Rest (außer "-c", aber den hatten wir ja schon ;) kann als nebensächlich betrachtet werden, und ist für den Normalfall uninteressant, darum gehe ich hier nicht darauf ein.
Es gibt nun verschiedene Methoden, Iroffer zu starten. Zum einen im Vordergrundmodus, was bedeutet: Iroffer wird gestartet und wir bekommen direkt Zugriff auf die Adminconsole. Dafür geben wir ein:
iroffer <name meiner configdatei>
Damit landen wir an der Adminconsole und können die Aktivitäten unseres Bots direkt beobachten. Dies ist sinnvoll für Fehlerbehebung, ansonsten wäre eher der Start als Hintergrundprozess sinnvoll. Letzteres erreichen wir durch:
iroffer -b <name meiner configdatei>
Falls wir unserem Bot nun (sinnvollerweise) noch etwas mehr Sicherheit gegen Hacks und eventuelle Exploits verleihen wollen, gehen wir bei und starten ihn (root-Anmeldung erforderlich) chrooted und unter einem eigenen User. Dafür legen wir zuerst einen User fürs Iroffer an (wie das gemacht wird, findet ihr im Manual eurer Linux/Unix-Distribution). Wenn dies geschehen ist, können wir loslegen mit dem Starten wie folgt:
iroffer -u <user für iroffer> -t <pfad zum botverzeichnis> -b <name meiner configdatei>
Hierbei muss man beachten, dass die Pfadangabe zum Botverzeichnis absolut erfolgen muss. Desweiteren müssen sich die Dateien, die geshared werden sollen, im Verzeichnis des Bots bzw. in einem Unterverzeichnis davon befinden (kann mit "filedir" in der Konfiguration definiert werden). Falls ein Unterverzeichnis benutzt wird, muss die "filedir"-Angabe relativ zum Botverzeichnis erfolgen. Das heisst: Wenn mein Botverzeichnis z.B. "/bots/testbot" ist und die Dateien in "/bots/testbot/files" liegen, lautet die Zeile für "filedir": <code>filedir /files</code>, ''nicht'' <code>filedir /bots/testbot/files</code>. Dies ist wichtig, da der Bot sonst nicht an die Dateien rankommt. Es besteht ansonsten die Möglichkeit, mittels <code>mount --bind</code> (genaue Angaben in den Man-Pages von <code>mount</code>) externe Verzeichnisse in den chroot einzubinden, weil der Bot in diesem Betriebsmodus über sein Verzeichnis hinaus keine Zugriffsrechte besitzt (was ja gerade der Sinn des <code>chroot</code> war).
Sollte alles korrekt gelaufen sein, erscheint euer Bot nun im IRC und ist bereit, zu arbeiten. Nun könnt ihr im [[Abschnitt über die Adminkommands/Adminconsole]] weiterlesen. Sollte etwas nicht funktionieren, so startet den Bot im Vordergrundmodus und sucht den Fehler anhand seiner Meldungen. Sollte er nicht einmal starten wollen, so überprüft die von ihm beanstandete Zeile in der Konfigurationsdatei.
=== Windows ===
Unter Windows haben wir leicht andere Parameter fürs Starten unseres Iroffers, da Windows nicht alles beherrscht, was Linux/Unix kann. Ein Aufruf ohne Parameter von Iroffer gibt in etwa folgende Ausgabe (Original und Mod unterscheiden sich nur darin, dass das Mod nur alle verfügbaren sinnvollen Parameter anzeigt, das Original auch welche ohne Funktion):
<pre>C:\iroffer>iroffer
iroffer: no configuration file specifed
iroffer v1.4.b02 [20050512030219] mod by Dinoex 1.23 [win32-build by TheDeath] by Dinoex, see https://iroffer.net/
Usage: iroffer [-vc] [-bdkn] configfile [ configfile ... ]
        -v        Print version and exit.
        -c        Generate encrypted password and exit.
        -d        Increase debug level
        -b        Go to background mode
        -k        Attempt to adjust ulimit to allow core files
        -n        No colors in foreground mode</pre>
Interessant sind für uns nur die Parameter "-c" sowie "-b" fürs Starten, die anderen haben auch ihren Zweck, sind aber fürs Starten im Normalfall nicht unbedingt von Interesse, darum hier nicht weiter dokumentiert. Um den Bot für eventuelle Testzwecke bzw. aus anderen Gründen im Vordergrundmodus zu starten, rufen wir ihn an einer Kommandozeile (CMD oder Command) wie folgt auf:
iroffer <meine iroffer configdatei>
Wenn ihr sicher seid, dass die Konfiguration funktioniert, und nicht immer das CMD-Fenster offen haben wollt, könnt ihr den Bot durch folgenden Aufruf als Hintergrundprozess starten:
iroffer -b <meine iroffer configdatei>
Sollte alles korrekt gelaufen sein, erscheint euer Bot nun im IRC und ist bereit, zu arbeiten. Nun könnt ihr im [[Abschnitt über die Adminkommands/Adminconsole]] weiterlesen. Sollte etwas nicht funktionieren, so startet den Bot im Vordergrundmodus und sucht den Fehler anhand seiner Meldungen. Sollte er nicht einmal starten wollen, so überprüft die von ihm beanstandete Zeile in der Konfigurationsdatei.
=== Umsteigen auf den mod Dinoex ===
Generell gilt "mod Dinoex" ist aufwärtskompatibel, d.h. er kann mit alten Konfigurationsdateien starten. Auch die definierten Pakete werden aus der ".state"-Datei übernommen. Wenn man umstellt sollte man jedoch die Konfigurationsdatei (mybot.config) und die ".state"-Datei (mybot.state) sichern.
== Die Steuerung, oder wie kontrolliere ich den Bot? ==
=== Möglichkeiten den Bot zu steuern ===
Steuern können wir den Bot mit verschiedenen Methoden. Jede dieser Methoden erfordert eine IRC-Verbindung (bis auf den Vordergrundmodus) und bedingt es, im Channel zu sein, wo sich auch unser Bot befindet (in der Dinoex Mod gibt es eine alternative Methode, auf die [[später]] getrennt eingegangen wird). Wir haben die Möglichkeit, ihn über
*den Vordergrundmodus (starten ohne Parameter "-b")
*/msg <botname> admin <adminpass> <commandos>
*/dcc chat <botname> (Adminconsole>
zu steuern. Die bequemste Methode (und auch die in meinen Augen sicherste) ist diejenige, sich im IRC via DCC-Chat in den Bot einzuloggen. Sind wir im Bot angemeldet, können wir mit dem Kommando "help" folgende Hilfe erhalten (die Dinoex Mod sieht ein wenig anders aus, [https://iroffer.net/help-admin-de.txt Übersicht] , mehr dazu in [[Iroffer_Kommandos]]):
<pre>-- Info Commands --
  HELP            - Shows Help
  XDL              - Lists Offered Files
  XDS              - Save XDCC File
  DCL              - Lists Current Transfers
  DCLD            - Lists Current Transfers with Details
  TRINFO n        - Lists Information About Transfer n
  QUL              - Lists Current Queue
  IGNL            - Show Ignored List
  LISTUL          - Shows contents of upload directory
  CHANL            - Shows channel list with member list
-- Transfer Commands --
  CLOSE n          - Cancels Transfer with ID = n
  CLOSEU n        - Cancels Upload with ID = n
  RMQ n            - Removes Queue Number n
  NOMIN n          - Disables Minspeed For Transfer ID n
  NOMAX n          - Disables Maxspeed For Transfer ID n
  SEND nick n      - Sends Pack n to nick
  PSEND <channel> <style> - Sends <style> (full|minimal|summary) XDCC LIST to <channel>
  QSEND            - Sends Out The First Queued Pack
-- Pack Commands --
  INFO n          - Show Info for Pack n
  REMOVE n        - Removes Pack n
  REMOVEDIR <dir>        - Remove Every File in <dir>
  RENUMBER x y    - Moves Pack x to y
  ADD <filename>  - Add New Pack With <filename>
  ADDDIR <dir>    - Add Every File in <dir>
  CHFILE n <msg>  - Change File of pack n to <msg>
  CHDESC n <msg>  - Change Description of pack n to <msg>
  CHNOTE n <msg>  - Change Note of pack n to <msg>
  CHMINS n x      - Change min speed of pack n to x KB
  CHMAXS n x      - Change max speed of pack n to x KB
  CHGETS n x      - Change the get count of a pack
-- Misc Commands --
  MSG <nick> <message> - Send a message to a user
  MESG <message>  - Sends msg to all users who are transferring
  MESQ <message>  - Sends msg to all users in a queue
  IGNORE n <hostmask> - Ignore hostmask (nick!user@host) for n minutes, wildcards allowed
  UNIGNORE <hostmask> - Un-Ignore hostmask
  NOSAVE n        - Disables XDCC AutoSave for next n minutes
  NOSEND n        - Disables XDCC Send for next n minutes
  NOLIST n        - Disables XDCC List and Plist for next n mins
  MSGREAD          - Show MSG log
  MSGDEL          - Delete MSG log
  RMUL <file>      - Delete a file in the Upload Dir
  RAW <command>    - Send <command> to server (RAW IRC)
-- Bot Commands --
  SERVERS          - Shows the server list
  JUMP <num>      - Switches to a random server or server <num>
  SERVQC          - Clears the server send queue
  STATUS          - Show Useful Information
  REHASH          - Re-reads config file(s) and reconfigures
  BOTINFO          - Show Information about the bot status
  MEMSTAT          - Show Information about memory usage
  CLEARRECORDS    - Clears transfer, bandwidth, uptime, and total sent
  REDRAW          - Redraws the Screen
  DELHIST          - Deletes console history
  QUIT            - Close this DCC chat
  CHATME          - Sends you a DCC Chat Request
  CHATL          - Lists DCC Chat Information
  CLOSEC n        - Closes DCC Chat with ID = n
  DEBUG n          - Set Debugging level to n
  SHUTDOWN <act>  - Shutdown iroffer, <act> is "now", "delayed", or "cancel"</pre>
=== Kommandos ===
Was die Kommandos im einzelnen tun, wird in [[Iroffer_Kommandos]] erläutert.
== Wunschliste ==
Was dem Iroffer an Funktionen noch fehlt bitte in der [[Iroffer_Wunschliste]] eintragen.
[[Kategorie:Datenübertragung]]
[[Kategorie:Software]]
[[Kategorie:Tutorial]]

Aktuelle Version vom 4. April 2019, 17:05 Uhr

Iroffer ist eine weitverbreitete Software zum Anbieten von Dateien über sog. XDCC-Bots. Hier wird im folgenden auf die Vorbereitung, Installation und Konfiguration eines solchen XDCC-Bots eingegangen.

Was ist Iroffer ?

Iroffer ist eine Software, die als sog. Fileserver (Dateiserver) im IRC agiert. Man kann es etwa mit einem Webserver oder einem FTP-Server vergleichen, nur dass hier nicht das HTTP- bzw. FTP-Protokoll verwendet wird. Für den Transfer wird hier das DCC-Protokoll, welches ein Teil des IRC's ist, benutzt. Im Gegensatz zu ähnlichen Programmen ist Iroffer kein Script, sondern ein eigenständiges ausführbares Programm. Es ist auf sehr hohe Leistungfähigkeit bei niedrigem Verbrauch an Systemresourcen (CPU, RAM, HDD) ausgelegt. Iroffer ist für die Betriebsysteme Windows sowie Unix bzw. Linux erhältlich.

Was brauche ich für meinen Bot und wo bekomme ich es ?

Man benötigt einen Computer mit breitbandigem Anschluss (DSL sollte es mindestens sein), der über genügend Uploadbandbreite (>=16 kb/s) verfügt, oder einen vServer bzw. Rootserver. Auf diesem PC sollte ein *nix bzw. Windows laufen, sowie je nach Menge der zu sharenden Dateien entsprechend Festplattenspeicherplatz. Für Iroffer selbst kann man etwa 3 MB rechnen, der Rest sind nur die zu sharenden Dateien. Wenn dies alles vorhanden ist, brauchen wir noch die entsprechende Iroffer-Version für unser Betriebsystem.

Iroffer original:

Iroffer Dinoex Mod:

Die Dinoex Mod enthält verschiedene Modifikationen gegenüber dem originalen Iroffer; die wahrscheinlich herausragendste davon ist die Möglichkeit, Dateigruppen anzulegen und damit die Dateien auf dem Bot zu ordnen. Aber das ist nicht alles - wer es genau wissen möchte, kann sich das Readme durchlesen. Diese Mod ist neben der Originalversion die am häufigsten anzutreffende Modifikation in der deutschen Fansubszene.

Installation

Linux

Nachdem wir die Sourcen der gewünschten Version heruntergeladen haben, geht es weiter wie folgt:

  • Entpacken der Sourcen & wechseln ins neue Verzeichnis:
tar -xzvf <name der heruntergeladenen datei>

cd <name des entstandenen verzeichnisses>

  • Starten des Konfigurationsscripts, welches uns eine make-Datei für unser System erstellt:
./Configure
  • Starten des Kompilationsprozesses, wenn keine Fehler beim Durchlaufen des Konfigurationsscripts auftraten:
make
  • Wenn gewünscht, können wir nun die ausführbare Datei systemweit verfügbar in /usr/local/bin installieren (optional und es werden hierfür root-Privilegien benötigt):
make install
  • Wenn Iroffer nicht systemweit installiert wird, bitte die ausführbare Datei "iroffer" aus dem Sourcenverzeichnis zum gewünschten Ausführungsort verschieben.

Damit ist die Installation von Iroffer unter Linux abgeschlossen und wir können uns der Konfiguration unseres Bots zuwenden.

Es gibt noch eine Kurzanleitung zum Installieren mit Webliste.

Windows

Wenn wir die Binary von der gewünschten Version heruntergeladen haben, gehen wir bei und entpacken mit einem Packer die .zip-Datei in ein Verzeichnis unserer Wahl auf der Festplatte. Damit ist unter Windows die Installation abgeschlossen, und wir können mit der Konfiguration des Bots fortfahren.

Konfigurieren von Iroffer

Allgemeine Konfiguration

So sieht die mit Iroffer Original 1.3 ausgelieferte Konfigurationsdatei aus, die einzigen Änderungen gegenüber dem Original sind die Übersetzungen der Beschreibungen der einzelnen Optionen:

##############################################################################
##                       iroffer 1.3.b09 config file                        ##
##            lines starting with "#" or are blank are ignored              ##
##############################################################################

# Version of this file:
#
# @(#) sample.config 1.114@(#)
# pmg@wellington.i202.centerclick.org|sample.config|20040823145918|21802
#

##############################################################################
##                                  FILES                                   ##
##############################################################################


##############################################################################
###                             - pid file -                               ###
### Schreibt die Prozess-ID beim Start in diese Datei                      ###
pidfile mybot.pid

##############################################################################
###                             - log file -                               ###
### logfile gibt die Logfile für den Bot vor. logstats sendet statistische ###
### Informationen an einen eventuell aktiven DCC-Chat. Mögliche Werte yes  ###
### (ja) und no (nein). logrotate gibt den Zeitraum vor, nach dem die Log- ###
### Datei gewechselt wird, mögliche Werte monthly (monatlich), weekly      ###
### (wöchentlich) und daily (täglich).                                     ###
logfile mybot.log
logstats yes
logrotate weekly

##############################################################################
###                             - state file -                             ###
### Diese Datei dient als allgemeines Datenlager für die bereitgestellten ###
### Dateien und die dazugehörigen statistischen Daten zwischen den Neustarts   ###
###  von Iroffer,                                      ###
statefile mybot.state

##############################################################################
###                         - xdcc listing file -                          ###
###  In diese Datei wird ein vollständiges XDCC-Listing exportiert, um z.B.  ###
###  als Packliste auf einer Webseite zu dienen, oder für andere Zwecke    ###
#xdcclistfile mybot.txt


##############################################################################
##                                   IRC                                    ##
##############################################################################

##############################################################################
###                          - connection method -                         ###
### Wie Iroffer sich zum IRC-Server verbinden soll, möglich ist:           ###
###  direct                     - verbindet direkt zum Server (normalfall) ###
###  bnc <ip> <port> <password> <vhost>                                    ###
###                             - verbindet zum IRC-Server über eine BNC   ###
###                               verbinden über <ip>:<port> unter         ###
###                               Verwendung von <password>                ###
###                               <vhost> ist optional                     ###
###  wingate <ip> <port>        - verbindet den Bot zum Server via einem   ###
###                               Wingate Gateway an <ip>:<port>           ###
###  custom <ip> <port>         - verbindet den Bot zum Server durch       ###
###                               Anwendung benutzerdefinierter Kommandos  ###
###                               mehr dazu weiter unten bei proxyinfo     ###
### die meisten Leute werden im Normalfall "direct" benutzen               ###
connectionmethod direct


##############################################################################
###                       - custom connection info -                       ###
### wenn "connectionmethod custom" verwendet wird, kann mittels proxyinfo  ###
### die nötige Befehlszeile für die Verbindung mit dem Proxy/Gateway/etc   ###
### angegeben werden, als Platzhalter für Server und Port stehen $s und $p ###
### zur Verfügung                                                          ###
#proxyinfo connect $s:$p
#proxyinfo blah blah


##############################################################################
###                         - onjoin information -                         ###
### Mittels server_join_raw, server_connected_raw und channel_join_raw     ###
### können RAW-IRC-Commands an den Server zu verschiedenen Zeitpunkten     ###
### während des Verbindungsaufbaus übergeben werden.                       ###
### server_join_raw wird ausgeführt wenn NICK, USER gesendet, vor MODE     ###
### server_connected wird ausgeführt wenn MODE gesendet, vor JOIN          ###
### channel_join_raw wird ausgeführt wenn ein channel gejoint wird         ###
### alle 3 Kommandos können mehrfach eingesetzt werden                     ###
#server_join_raw
#server_connected_raw
#channel_join_raw


##############################################################################
###                             - nickserv -                               ###
### Wenn der Nick gegen den NickServ registriert ist, kann hier das Pass-  ###
### wort eingetragen werden, damit er sich beim Joinen des Servers von     ###
### selbst identifiziert
nickserv_pass Dussel


##############################################################################
###                         - server information -                         ###
### Liste der Server und Ports im Aufbau: "server irc.domain.com 6667".    ###
### Die Angabe des Ports ist optional, Standard ist 6667.                  ###
### Mehrere Server können (und sollten) angegeben werden                   ###
server irc.sexy-power-world.de
##############################################################################
###                         - channels (upto 50) -                         ###
### Channelformat:                                                         ###
### "channel <channel> [-plist <time>] [-plistoffset <time>]               ###
###    [-pformat <full|minimal|summary>] [-key <key>] "                    ###
### plist: Zeit (min) zwischen den einzelnen Announcen                     ###
### plistoffset: Zeit (min) um die die Announce versetzt wird              ###
### pformat: full zeigt alle Packs auf dem Bot und stellt den Standard dar ###
###          minimal stellt eine kleine Announce zusammen (ca. 5 Zeilen)   ###
###          summary zeigt eine 2-Zeilen-Zusammenfassung an                ###
### key:     für Channels, die den Modus +k (Key) haben; definiert das     ###
###          nötige Passwort für das Joinen des Channel                    ###
channel #~Sexy-Power-World -plist 28
#channel #chan02 -plist 14
#channel #chan03 -plist 28 -pformat minimal
#channel #chan04 -plist 14 -pformat summary -key thekey


##############################################################################
###                          - user information -                          ###
### user_nick definiert den Nicknamen des Bots                             ###
### user_realname definiert den Text, den man mit /whois abfragen kann     ###
### user_modes definiert die Modi, die für den User gesetzt werden sollen  ###
user_nick HeX-01
user_realname My Bot
user_modes +i


##############################################################################
###                            - virtual hosts -                           ###
### Wenn der Computer/Server mehr als eine lokale IP-Adresse hat, kann     ###
### mit local_vhost <ip> angegeben werden, welche davon genutzt werden soll. ###
### Falls Iroffer selbst wählen soll, einfach Option deaktiviert belassen. ###
### Wichtig: Es muss eine IP angegeben werden, kein Domainname!!!          ###
local_vhost 85.214.41.103

##############################################################################
###                      - incoming TCP connections -                      ###
### Wenn Iroffer hinter einer Firewall gestartet werden soll und die Mög-  ###
### lichkeit besteht, Ports zu öffnen bzw zu forwarden, kann mittels       ###
### tcprangestart der erste Port des Bereiches für Iroffer angegeben       ###
### werden. Die Menge nötiger Ports entspricht der maximalen Zahl Send-    ###
### slots. Wenn nichts definiert ist, wählt das OS selbstständig die Ports ###
### für eintreffende TCP-Verbindungen.                                     ###
#tcprangestart 4000

##############################################################################
###                       - override unix loginname -                      ###
### Überschreibt den Unixlogin in der Ident, funktioniert nur ohne OIdent. ###
#loginname fakelogin


##############################################################################
###                      - manual dcc ip translation -                     ###
### if you are behind a NAT (Network Address Translation) device which     ###
### _does_ _not_ intercept and translate dcc commands but _does_ do port   ###
### forwarding place the ip address of the NAT below if unsure, leave      ###
### commented                                                              ###
### NOTE:  You must use the IP address in x.x.x.x format not a DNS name.   ###
#usenatip 123.456.789.123


##############################################################################
##                                   xdcc                                   ##
##############################################################################

##############################################################################
###                         - maximum xdcc slots -                         ###
### Anzahl gleichzeitiger Verbindungen zur Dateiübertragung.               ###
slotsmax 2

##############################################################################
###                         - Queue Information -                          ###
### Größe der Warteschlange; 0 bedeutet keine Warteschlange.               ###
queuesize 10

##############################################################################
###                      - max transfers per person -                      ###
### maximale Anzahl gleichzeitiger Übertragungen pro Person                ###
maxtransfersperperson 1

##############################################################################
###                     - max queued items per person -                    ###
### Maximale Anzahl gleichzeitiger Warteschlangeneinträge                  ###
maxqueueditemsperperson 2

##############################################################################
###                 - add/chfile command helper directory -                ###
### Hier kann ein optionales Dateiverzeichnis angegeben werden, wo Iroffer ###
### nach Dateien sucht, die mittels add/chfile hinzugefügt werden.         ###
### Standardmäßig sucht Iroffer im Verzeichnis, in dem es ausgeführt wird. ###
filedir /home/1/files
#c:\iroffer\files

##############################################################################
###                  - restrict xdcc list and xdcc send -                  ###
### Wenn restrictlist gesetzt wird, kann xdcc list und xdcc info nur von   ###
### jemandem ausgeführt werden, der sich auch im Channel befindet.         ###
### Wenn restrictprivlist gesetzt wird, kann der Bot nicht mehr via xdcc   ###
### list gelistet werden und gibt, falls es jemand versucht, die mit       ###
### restrictprivlistmsg gesetzte Mitteilung aus.                           ###
### restrictsend bedeutet, dass nur wer im Channel ist, Dateien vom Bot    ###
### empfangen kann; sobald er ihn verlässt, wird der Send abgebrochen.     ###
#restrictlist
#restrictprivlist
restrictprivlistmsg nur wer im Channel ist!
#restrictsend

##############################################################################
###                      - channel xdcc commands -                         ###
### wenn respondtochannelxdcc gesetzt ist, reagiert der Bot auf Kommandos, ###
### die in den Channel gepostet werden.
respondtochannelxdcc

##############################################################################
###                      - channel !list command -                         ###
### wenn respondtochannellist gesetzt wird, reagiert der bot auf !list     ###
#respondtochannellist

##############################################################################
###                   - bypass queue for small files -                     ###
### Wenn jemand eine Datei anfordert, die kleiner oder gleich dem          ###
### definierten Wert (in KB) ist, wird diese unabhängig von der            ###
### Slotseinstellung gesendet.
#smallfilebypass 0

##############################################################################
###                      - authorized download hosts -                     ###
### Hiermit kann eingeschränkt werden, wer vom Bot downloaden darf. Ange-  ###
### geben werden Hostmasken. Um allen den Download zu erlauben, einfach    ###
### *!*@* als Hostmask einsetzen.                                          ###
### Jokerzeichen sind:                                                     ###
###  * = 0 oder mehr Zeichen,  ? = 1 Zeichen,  # = jede positive Zahl      ###
#downloadhost *!~me@*.domain.com
#downloadhost *!me@192.168.10.#
downloadhost *!*@*

##############################################################################
##                               Network Usage                              ##
##############################################################################

##############################################################################
###                      - Allow with low bandwidth -                      ###
### Wenn Pakete in der Warteschlange sind und der Verbrauch der Band-      ###
### breite den vorgegebenen Wert unterschreitet, wird ein zusätzlicher     ###
### Send gestartet für einen Nutzer aus der Warteschlange.                 ###
### Achtung: Diesen Wert nicht unsinnig niedrig oder hoch setzen!
#lowbdwth 15

##############################################################################
###                         - transfer min speed -                         ###
### Mindestgeschwindigkeit beim Downloaden, sonst wird der Download abge-  ###
### brochen.                                                               ###
#transferminspeed 10

##############################################################################
###                         - transfer max speed -                         ###
### Maximalgeschwindigkeit beim Downloaden, sonst wird künstlich gebremst  ###
#transfermaxspeed 50

##############################################################################
###                        - bandwidth limiting -                          ###
### Is your sysadmin complaining about you using up too much bandwidth?    ###
### You can set a maximum KB/sec that will be sent to the network.         ###
### You can define two different limits depending on time of day,          ###
### overallmaxspeed is the general limit, overallmaxspeeddayspeed is the   ###
### limit during the hours defined by overallmaxspeeddaytime (0 ... 23)    ###
### (no looping) and durring days of week ( MTWRFSU )                      ###
#overallmaxspeed 300
#overallmaxspeeddayspeed 100
#overallmaxspeeddaytime 9 17
#overallmaxspeeddaydays MTWRF


##############################################################################
##                                   Other                                  ##
##############################################################################

##############################################################################
###                          - autosend feature -                          ###
### Wenn autosendpack gesetzt wird, schickt bei der Bot, sobald ein        ###
### Schlüsselwort im Channel aufkommt, das definierte Pack an die Person.  ###
###           === DIE MEISTEN WERDEN DIES NICHT BENÖTIGEN! ===             ###
###         === HOLT EUCH ERST VOM CHANNEL OP DIE ERLAUBNIS! ===           ###
#autosendpack <packnr> <schlüsselwort> <mitteilung>
#autosendpack 1 !rules Sending you the rules.

##############################################################################
###                             - headline -                               ###
### Überschrift für alle XDCC-Lists                                        ###
headline New Stuff Just Added!!

##############################################################################
###                           - credit line -                              ###
### Fußnote für alle XDCC-Lists                                            ###
creditline Brought to you by me

##############################################################################
###                         - index bot notify -                           ###
### Wenn iroffer periodisch jemandem eine Mitteilung schicken soll für     ###
### Indizierungszwecke oder anderen Bedarf, kann perdidocmsg verwendet     ###
### werden:                                                                ###
### "periodicmsg <nick> <zeit in min> <mitteilung>
#periodicmsg nick 10 index me

##############################################################################
###                        - remote admin info -                           ###
### Die Admincommands können nur von jemanden ausgeführt werden, dessen    ###
### hostmaske auf die Vorgabe passt und der das nötige Kennwort kennt.     ###
### Diese Kommandos können entweder via DCC-Chat oder aber via             ###
### /msg <botnick> admin <adminpass> <kommando> ausgeführt werden.         ###
### adminhost benötigt eine komplette hostmask im aufbau nick!ident@host   ###
### Falls kein identd benutzt wird, nicht vergessen, ein "~" hinzuzufügen! ###
### Jokerzeichen sind:                                                     ###
###  * = 0 oder mehr Zeichen,  ? = 1 Zeichen,  # = jede positive Zahl      ###
### Aus Sicherheitsgründen wird das Adminpasswort verschlüsselt in der     ###
### Konfigurationsdatei hinterlegt. Um ein Password zu generieren, bitte   ###
### Iroffer mit Option "-c" ausführen und den Instruktionen folgen.        ###
#adminpass add_your_encrypted_password_here
adminhost *!~me@*.domain.com
adminhost *!me@84.183.243.#

##############################################################################
###                          - upload directory -                          ###
### Soll der Bot DCC-Uploads akzeptieren, müssen hier die Uploadhosts,     ###
### ein Uploadverzeichnis und die maximale Größe in MB für einen Upload    ###
### definiert werden (0 entspricht keinem Limit bei der Uploadgröße).      ###
### Jokerzeichen sind:                                                     ###
###  * = 0 oder mehr Zeichen,  ? = 1 Zeichen,  # = jede positive Zahl      ###
### ACHTUNG!! Für das Uploaden sollte ein eigenes Verzeichnis angelegt     ###
### ACHTUNG!! werden, um Überschreiben bzw. Erweitern wichtiger Dateien zu ###
### ACHTUNG!! verhindern bzw. Missbrauch und Exploits nicht zu ermöglichen ###
#uploadhost *!~me@*.domain.com
#uploadhost *!me@192.168.10.#
#uploaddir /home/me/upload
#uploaddir c:\iroffer\upload
#uploadmaxsize 10

##############################################################################
###                          - hide OS information-                        ###
### Wenn Iroffer in den Versionsangaben und in seiner Quitmitteilung nicht ###
### das Betriebsystem nennen soll, dann bitte diese Option einschalten.    ###
hideos

##############################################################################
###                              - log notices -                           ###
### Wenn aktiviert, zeichnet Iroffer alle Notices im Nachichtenspeicher auf###
lognotices

##############################################################################
###                           - timestamp console -                        ###
### Wenn definiert, setzt Iroffer eine Zeitmarke in der Konsole            ###
#timestampconsole

##############################################################################
###                           - quietmode -                                ###
### Wenn definiert, unterdrückt Iroffer die meisten Info-Meldungen         ###
#quietmode

##############################################################################
###                       - periodic notify time -                         ###
### Legt fest, wie regelmäßig Iroffer-Nutzer über ihre aktuelle Platzierung###
### in der Warteschlange bzw. über die verbrauchte Bandbreite informiert.  ###
### Standard ist 5 min; um diese Funktion vollständig zu deaktivieren,     ###
### setzt man das Zeitintervall auf 0.
#notifytime 5

##############################################################################
###                         - punish slow users -                          ###
### Wenn ein Nutzer unter den Minimaldownloadspeed fällt, wird er bestraft,###
### indem alle Sends abgebrochen und er aus der Warteschlange entfernt wird.    ###
### Durch diese Option kann er noch zusätzlich um die definierte Zeit (in  ###
### min) vom Bot ignoriert werden.
#punishslowusers 10

##############################################################################
###                      - disable md5sum of files -                       ###
### Standardmäßig berechnet Iroffer für alle angebotenen Dateien die MD5-  ###
### Prüfsumme. Zum Abstellen dieser Funktion diese Option setzen.
#nomd5sum

##############################################################################
##                                    End                                   ##
##############################################################################

Anhand der Informationen der einzelnen Punkte kann nun die Konfiguration Punkt für Punkt abgearbeitet werden. Wichtig:

  • pidfile
  • server
  • channel
  • filesdir
  • adminhost
  • adminpass

Dies sind die wichtigen Optionen, die für eine Minimalconfig gesetzt werden sollten. Alles weitere kann später noch nachkonfiguriert werden (wobei es besser ist, alles in einem Schritt zu erledigen ;). Man sollte beachten, dass ein Netzwerk nicht doppelt vorkommt, und dass nach einer network-Angabe immer die server-Angabe steht. Tut man dies nicht, ist es oft der Fall, dass sich eine Kopie zum IRC-Netzwerk verbindet, bei dieser wird dann eine 0 hinten am Nick drangehangen (Bsp.: XDCC|mybot0). Bei mir war es so (ich hatte bei der Beschreibung von der network-Angabe das Beispiel auskommentiert), dass das Original keinen Channel betreten hat, stattdessen aber die Kopie. Ich habe mir da stundenlang den Kopf darüber zerbrochen wieso das passiert ist. ^^

Alle Einstellungen des mod Dinoex sind in der beispiel.config kurz erklärt.

Starten von Iroffer

Linux

Nun, da die Konfiguration geschrieben ist, können wir Iroffer für einen ersten Testlauf starten. Wenn wir Iroffer ohne jegliche Parameter starten, bekommen wir in etwa folgende Ausgabe (Original & Mod sind hier gleich!):

deathserv:~ # iroffer
iroffer: no configuration file specifed

iroffer v1.4.b02 [20050512030219] mod by Dinoex 1.23 by Dinoex, see https://iroffer.net/

Usage: iroffer [-vc] [-bdkns] [-u user] [-t dir] configfile [ configfile ... ]
        -v        Print version and exit.
        -c        Generate encrypted password and exit.
        -d        Increase debug level
        -b        Go to background mode
        -k        Attempt to adjust ulimit to allow core files
        -n        No colors in foreground mode
        -s        No screen manipulation in foreground mode
        -u user   Run as user (you have to start as root).
        -t dir    Chroot to dir (you have to start as root).

Für uns wichtig bzw. interessant sind die Parameter "-b", "-u <user>", "-t <dir>". Der Rest (außer "-c", aber den hatten wir ja schon ;) kann als nebensächlich betrachtet werden, und ist für den Normalfall uninteressant, darum gehe ich hier nicht darauf ein.

Es gibt nun verschiedene Methoden, Iroffer zu starten. Zum einen im Vordergrundmodus, was bedeutet: Iroffer wird gestartet und wir bekommen direkt Zugriff auf die Adminconsole. Dafür geben wir ein:

iroffer <name meiner configdatei>

Damit landen wir an der Adminconsole und können die Aktivitäten unseres Bots direkt beobachten. Dies ist sinnvoll für Fehlerbehebung, ansonsten wäre eher der Start als Hintergrundprozess sinnvoll. Letzteres erreichen wir durch:

iroffer -b <name meiner configdatei>

Falls wir unserem Bot nun (sinnvollerweise) noch etwas mehr Sicherheit gegen Hacks und eventuelle Exploits verleihen wollen, gehen wir bei und starten ihn (root-Anmeldung erforderlich) chrooted und unter einem eigenen User. Dafür legen wir zuerst einen User fürs Iroffer an (wie das gemacht wird, findet ihr im Manual eurer Linux/Unix-Distribution). Wenn dies geschehen ist, können wir loslegen mit dem Starten wie folgt:

iroffer -u <user für iroffer> -t <pfad zum botverzeichnis> -b <name meiner configdatei>

Hierbei muss man beachten, dass die Pfadangabe zum Botverzeichnis absolut erfolgen muss. Desweiteren müssen sich die Dateien, die geshared werden sollen, im Verzeichnis des Bots bzw. in einem Unterverzeichnis davon befinden (kann mit "filedir" in der Konfiguration definiert werden). Falls ein Unterverzeichnis benutzt wird, muss die "filedir"-Angabe relativ zum Botverzeichnis erfolgen. Das heisst: Wenn mein Botverzeichnis z.B. "/bots/testbot" ist und die Dateien in "/bots/testbot/files" liegen, lautet die Zeile für "filedir": filedir /files, nicht filedir /bots/testbot/files. Dies ist wichtig, da der Bot sonst nicht an die Dateien rankommt. Es besteht ansonsten die Möglichkeit, mittels mount --bind (genaue Angaben in den Man-Pages von mount) externe Verzeichnisse in den chroot einzubinden, weil der Bot in diesem Betriebsmodus über sein Verzeichnis hinaus keine Zugriffsrechte besitzt (was ja gerade der Sinn des chroot war).

Sollte alles korrekt gelaufen sein, erscheint euer Bot nun im IRC und ist bereit, zu arbeiten. Nun könnt ihr im Abschnitt über die Adminkommands/Adminconsole weiterlesen. Sollte etwas nicht funktionieren, so startet den Bot im Vordergrundmodus und sucht den Fehler anhand seiner Meldungen. Sollte er nicht einmal starten wollen, so überprüft die von ihm beanstandete Zeile in der Konfigurationsdatei.

Windows

Unter Windows haben wir leicht andere Parameter fürs Starten unseres Iroffers, da Windows nicht alles beherrscht, was Linux/Unix kann. Ein Aufruf ohne Parameter von Iroffer gibt in etwa folgende Ausgabe (Original und Mod unterscheiden sich nur darin, dass das Mod nur alle verfügbaren sinnvollen Parameter anzeigt, das Original auch welche ohne Funktion):

C:\iroffer>iroffer
iroffer: no configuration file specifed

iroffer v1.4.b02 [20050512030219] mod by Dinoex 1.23 [win32-build by TheDeath] by Dinoex, see https://iroffer.net/

Usage: iroffer [-vc] [-bdkn] configfile [ configfile ... ]
        -v        Print version and exit.
        -c        Generate encrypted password and exit.
        -d        Increase debug level
        -b        Go to background mode
        -k        Attempt to adjust ulimit to allow core files
        -n        No colors in foreground mode

Interessant sind für uns nur die Parameter "-c" sowie "-b" fürs Starten, die anderen haben auch ihren Zweck, sind aber fürs Starten im Normalfall nicht unbedingt von Interesse, darum hier nicht weiter dokumentiert. Um den Bot für eventuelle Testzwecke bzw. aus anderen Gründen im Vordergrundmodus zu starten, rufen wir ihn an einer Kommandozeile (CMD oder Command) wie folgt auf:

iroffer <meine iroffer configdatei>

Wenn ihr sicher seid, dass die Konfiguration funktioniert, und nicht immer das CMD-Fenster offen haben wollt, könnt ihr den Bot durch folgenden Aufruf als Hintergrundprozess starten:

iroffer -b <meine iroffer configdatei>

Sollte alles korrekt gelaufen sein, erscheint euer Bot nun im IRC und ist bereit, zu arbeiten. Nun könnt ihr im Abschnitt über die Adminkommands/Adminconsole weiterlesen. Sollte etwas nicht funktionieren, so startet den Bot im Vordergrundmodus und sucht den Fehler anhand seiner Meldungen. Sollte er nicht einmal starten wollen, so überprüft die von ihm beanstandete Zeile in der Konfigurationsdatei.


Umsteigen auf den mod Dinoex

Generell gilt "mod Dinoex" ist aufwärtskompatibel, d.h. er kann mit alten Konfigurationsdateien starten. Auch die definierten Pakete werden aus der ".state"-Datei übernommen. Wenn man umstellt sollte man jedoch die Konfigurationsdatei (mybot.config) und die ".state"-Datei (mybot.state) sichern.

Die Steuerung, oder wie kontrolliere ich den Bot?

Möglichkeiten den Bot zu steuern

Steuern können wir den Bot mit verschiedenen Methoden. Jede dieser Methoden erfordert eine IRC-Verbindung (bis auf den Vordergrundmodus) und bedingt es, im Channel zu sein, wo sich auch unser Bot befindet (in der Dinoex Mod gibt es eine alternative Methode, auf die später getrennt eingegangen wird). Wir haben die Möglichkeit, ihn über

  • den Vordergrundmodus (starten ohne Parameter "-b")
  • /msg <botname> admin <adminpass> <commandos>
  • /dcc chat <botname> (Adminconsole>

zu steuern. Die bequemste Methode (und auch die in meinen Augen sicherste) ist diejenige, sich im IRC via DCC-Chat in den Bot einzuloggen. Sind wir im Bot angemeldet, können wir mit dem Kommando "help" folgende Hilfe erhalten (die Dinoex Mod sieht ein wenig anders aus, Übersicht , mehr dazu in Iroffer_Kommandos):

-- Info Commands --
  HELP             - Shows Help
  XDL              - Lists Offered Files
  XDS              - Save XDCC File
  DCL              - Lists Current Transfers
  DCLD             - Lists Current Transfers with Details
  TRINFO n         - Lists Information About Transfer n
  QUL              - Lists Current Queue
  IGNL             - Show Ignored List
  LISTUL           - Shows contents of upload directory
  CHANL            - Shows channel list with member list
-- Transfer Commands --
  CLOSE n          - Cancels Transfer with ID = n
  CLOSEU n         - Cancels Upload with ID = n
  RMQ n            - Removes Queue Number n
  NOMIN n          - Disables Minspeed For Transfer ID n
  NOMAX n          - Disables Maxspeed For Transfer ID n
  SEND nick n      - Sends Pack n to nick
  PSEND <channel> <style> - Sends <style> (full|minimal|summary) XDCC LIST to <channel>
  QSEND            - Sends Out The First Queued Pack
-- Pack Commands --
  INFO n           - Show Info for Pack n
  REMOVE n         - Removes Pack n
  REMOVEDIR <dir>         - Remove Every File in <dir>
  RENUMBER x y     - Moves Pack x to y
  ADD <filename>   - Add New Pack With <filename>
  ADDDIR <dir>     - Add Every File in <dir>
  CHFILE n <msg>   - Change File of pack n to <msg>
  CHDESC n <msg>   - Change Description of pack n to <msg>
  CHNOTE n <msg>   - Change Note of pack n to <msg>
  CHMINS n x       - Change min speed of pack n to x KB
  CHMAXS n x       - Change max speed of pack n to x KB
  CHGETS n x       - Change the get count of a pack
-- Misc Commands --
  MSG <nick> <message> - Send a message to a user
  MESG <message>   - Sends msg to all users who are transferring
  MESQ <message>   - Sends msg to all users in a queue
  IGNORE n <hostmask> - Ignore hostmask (nick!user@host) for n minutes, wildcards allowed
  UNIGNORE <hostmask> - Un-Ignore hostmask
  NOSAVE n         - Disables XDCC AutoSave for next n minutes
  NOSEND n         - Disables XDCC Send for next n minutes
  NOLIST n         - Disables XDCC List and Plist for next n mins
  MSGREAD          - Show MSG log
  MSGDEL           - Delete MSG log
  RMUL <file>      - Delete a file in the Upload Dir
  RAW <command>    - Send <command> to server (RAW IRC)
-- Bot Commands --
  SERVERS          - Shows the server list
  JUMP <num>       - Switches to a random server or server <num>
  SERVQC           - Clears the server send queue
  STATUS           - Show Useful Information
  REHASH           - Re-reads config file(s) and reconfigures
  BOTINFO          - Show Information about the bot status
  MEMSTAT          - Show Information about memory usage
  CLEARRECORDS     - Clears transfer, bandwidth, uptime, and total sent
  REDRAW           - Redraws the Screen
  DELHIST           - Deletes console history
  QUIT             - Close this DCC chat
  CHATME           - Sends you a DCC Chat Request
  CHATL           - Lists DCC Chat Information
  CLOSEC n         - Closes DCC Chat with ID = n
  DEBUG n          - Set Debugging level to n
  SHUTDOWN <act>   - Shutdown iroffer, <act> is "now", "delayed", or "cancel"

Kommandos

Was die Kommandos im einzelnen tun, wird in Iroffer_Kommandos erläutert.

Wunschliste

Was dem Iroffer an Funktionen noch fehlt bitte in der Iroffer_Wunschliste eintragen.