Mldonkey
Mldonkey (auch: MLDonkey) ist eine in der Programmiersprache Objective CAML geschriebene Peer-to-Peer-Software. Derzeit unterstützte Netzwerke sind:
Ausserdem können Dateien auch über HTTP, FTP und SFTP bzw. SCP heruntergeladen werden.
Mldonkey wurde vor allem für Unix-basierte Systeme (GNU/Linux, verschiedene BSDs, Mac OS X/Darwin) entwickelt, inzwischen gibt es auch eine lauffähige Microsoft Windows-Portierung.
Einer der grossen Unterschiede zu vergleichbaren Softwareanwendungen wie Kazaa oder Lopster ist die strikte Trennung in einen Kern und eine Oberfläche:
- der Kern (engl. core) stellt die eigentliche Funktionalität bereit.
- die Oberfläche dient der Interaktion mit dem Benutzer.
Hierzu stehen drei verschiedene Protokolle bereit:
- Über HTTP mit einem Webbrowser auf die Weboberfläche zugegriffen werden (sofern das Programm am lokalen Rechner läuft über http://127.0.0.1:4080/)
- Über Telnet kann der Kern vollständig gesteuert werden.
- Über das eigene Mldonkey-GUI-Protokoll wird der Zugriff über verschiedene GUI-Clients ermöglicht.
Diese Trennung ist besonders geeignet, um den Kern von einem anderen Rechner aus zu steuern. Hierzu muss mittels einer der drei genannten Methoden eine Verbindung aufgebaut werden, um Befehle abzusetzen. Zum Herunterladen selbst ist keine Verbindung von der Benutzerschnittstelle zum Mldonkey-Kern nötig.
Mldonkey kann dieselbe Datei gleichzeitig aus dem Edonkey2000-Netzwerk und dem Overnet beziehen und dort anbieten, ist also ein Hybrid wie der offizielle Edonkey2000-Client.
Installation
Vorbedingungen
- gd, gd-devel
- m4
- zlib, zlib-devel
Befehle
Es gibt drei Wege, um mit dem Mldonkey-Client zu kommunizieren. In allen Fällen kann der Client auf dem einen Rechner laufen und von einem anderen Rechner aus gesteuert werden.
Verwendung der grafischen Oberfläche "mldonkey_gui" auf demselben Rechner, auf dem der Mldonkey-Client läuft.
$ ./mldonkey_gui localhost
Verwendung des Befehlszeilen-Clients auf demselben Rechner, auf dem der Mldonkey-Client läuft.
$ telnet localhost 4000
Verwendung eines Webbrowsers (hier lynx) auf demselben Rechner, auf dem der Mldonkey-Client läuft.
$ lynx http://localhost:4080/
Verfügbare Befehle sind die folgenden.
Befehl | Beschreibung |
---|---|
Driver/Downloads | |
cancel <num> | Abbrechen aller Downloads. (Verwendung des Arguments "all" für alle Dateien) |
commit | Verschieben der heruntergeladenen Dateien ins Verzeichnis "incoming". |
confirm <yes|no|what> | Bestätigen des Abbruchs. |
dllink <link> | Herunterladen eines ed2k-, sig2dat-, torrent- oder anderen Links. |
dllinks <datei> | Herunterladen aller in der Datei enthaltenen Links. |
downloaders | Anzeige einer Liste der herunterladenden Rechner. |
pause <num> | Pausieren eines Downloads. (Verwendung des Arguments "all" für alle Dateien) |
preview <dateinummer> | Starten des Vorschaubetrachters für die Datei <dateinummer>. |
priority <priority> <files numbers> | Ändern der Dateipriorität. |
rename <zahl> "<neuer name>" | Ändern des Namens des Downloads <zahl> zu <neuer name>. |
resume <num> | Wiederaufnehmen eines pausierten Downloads. (Verwendung des Arguments "all" für alle Dateien) |
test_recover <num> | print the segments downloaded in file |
vd <num> | Anzeige von Dateiinformationen. |
verify_chunks <num> | verify chunks of file <num> |
Driver/Friends | |
files <client num> | print files from friend <client num> |
friend_add <client num> | add client <client num> to friends |
friend_remove <client nummer> | Entfernen von Freund <client nummer>. (Verwendung des Arguments "all" für alle Dateien) |
friends | Anzeige aller Freunde. |
gfr <client num> | ask friend files |
vfr | Ansehen der Freunde. |
Driver/General | |
activity <minuten> | Anzeige der Aktivität in den letzten <minuten> Minuten. |
add_url <kind> <url> | load this file from the web. kind is either server.met (if the downloaded file is a server.met) |
add_user <user> <passwd> | Hinzufügen eines neuen Mldonkey-Benutzers. |
calendar_add <hour> "<command>" | add a command to be executed every day |
dump_heap | dump heap for debug |
kill | save and kill the server |
message | message [<client num> <msg>] |
message_log | message_log [refresh delay in seconds] |
q | close telnet |
recover_temp | recover lost files from temp directory |
vc <num> | view client (use arg 'all' for all clients) |
version | print mldonkey version |
Driver/Network | |
! <cmd> | start command <cmd> (must be allowed in 'allowed_commands' option or by 'allow_any_c ommand' if arguments) |
bw_stats | print current bandwidth stats |
nu <m> | disable upload during <m> minutes (multiple of 5) |
Driver/Networks | |
disable <num> | disable a particular network |
enable <num> | enable a particular network |
networks | print all networks |
Driver/Options | |
options | print options values by section |
save | save |
set <option_name> <option_value> | change option value |
vo | display options |
voo | print all options |
Driver/Searches | |
d <num> | file to download |
force_download | force download of an already downloaded file |
forget <num1> <num2> ... | forget searches <num1> <num2> ... |
ls <query> | search for files locally With special args: |
s <query> | search for files on all networks With special args: |
view_custom_queries | view custom queries |
vr [<num>] | view results of a search |
vs | view all queries |
Driver/Servers | |
c [<num>] | connect to more servers (or to server <num>) |
rem <server numbers> | remove server (use arg 'all' for all servers) |
server_banner <num> | print banner of connected server <num> |
vm | list connected servers |
vma | list all known servers |
x <num> | disconnect from server |
Driver/Sharing | |
links | list links of shared files |
reshare | check shared files for removal |
share <priority> <dir> [<strategy>] | share directory <dir> with <priority> [and sharing strategy <strategy>] |
shares | print shared directories |
unshare <dir> | share directory <dir> |
uploaders | show users currently uploading |
upstats | statistics on upload |
Driver/Xpert | |
ansi | toggle ansi terminal (devel) |
block_list | display the list of blocked IP ranges that were hit |
block_test <ip> | check whether an IP is blocked |
clear_debug | clear the table of clients being debugged |
close_all_sockets | close all opened sockets |
close_fds | close all files (use to free space on disk after remove) |
close_log | close logging to file |
daemon | detach process from console and run in background |
debug_client <client nums> | debug message in communications with these clients |
debug_file <client nums> | debug file state |
debug_socks | for debugging only |
html_mods | toggle html_mods |
html_mods_style | select html_mods_style <#> |
html_theme <theme> | select html_theme |
log | dump current log state to console |
log_file <file> | start logging in file <file> |
mem_stats | print memory stats |
reload_messages | reload messages file |
stdout <true|false> | reactivate log to stdout |
term <width> <height> | set terminal width and height (devel) |
use_poll <bool> | use poll instead of select |
Network/Bittorrent | |
compute_torrent <filename> | generate the corresponding <filename>.torrent file in torrents/tracked/. The file is automatically tracked, and seeded if in incoming/ |
torrents | print all .torrent files on this server |
Network/Donkey | |
client_stats | show breakdown of download/upload by clients brand |
cs | show table of download/upload by clients brand |
csm | show table of download/upload by eMule MODs |
dump_reliability | display the reliability of sources |
Network/Edonkey | |
add_url <kind> <url> | load this file from the web. kind is either server.met (if the downloaded file is a server.met) |
afr <ip> [<port>] | add a friend |
bp <port1> <port2> ... | add these ports to the port black list |
bs <ip1> <ip2> ... | add these IPs to the servers black list |
clh | clear local history |
comment <md4> "<comment>" | add comment on a md4 |
comments <filename> | load comments from file |
dd <size> <md4> | download from size and md4 |
dup | find duplicate chunks (experimental) |
id | print ID on connected servers |
import <dirname> | import the config from dirname |
import_temp <temp_dir> | import the old edonkey temp directory |
load_old_history | load history.dat file |
n <ip> [<port>] | add a server |
port <port> | change connection port |
recover_bytes <f1> <f2> ... | try to recover these files at byte level |
remove_old_servers | remove servers that have not been connected for several days |
scan_temp | print temp directory content |
send_servers | send the list of connected servers to the redirector |
servers <filename> | add the servers from a server.met file |
set_brothers <f1> <f2> ... | define these files as probably colocated |
sources | show sources currently known |
vu | view upload credits |
xs | extend the last search |
Network/FileTP | |
http <url> | start downloading this URL |
mirror <url> | start downloading this URL |
Network/G2 | |
g2stats | print stats on G2 network |
Network/Gnutella | |
gstats | print stats on Gnutella network |
Network/Overnet | |
boot <ip> <port> | add an Overnet peer |
ovlink <fhalink> | download fha://link |
ovmd4 | get client MD4 address on the overnet network |
ovsearch | search keyword (<md4>) |
ovstats | Overnet Stats |
ovstore | dump the Overnet File Store |
ovtst | (not documented) |
ovtst2 | (not documented) |
ovweb <urls> | download .ocl URLS (no arg load default) |
send_udp | send UDP message (<ip> <port> <msg in hex>) |
Verwendung
Starten von Mldonkey.
$ mlnet > /dev/null 2>&1 &
Mldonkey kann danach im lokalen Webbrowser über "http://localhost:4080/" aufgerufen werden.
MLDonkey created a new home directory in /home/mik/.mldonkey --Buildinfo-- Version: MLNet Multi-Network p2p client version 2.7.4 Networks: Global Shares Gnutella G2 Fasttrack FileTP BitTorrent Donkey (SUI) Ocaml version: 3.09.1 - C compiler version: 4.0.2 - C++ compiler version: 4.0.2 Build on: Linux i686 2.6.13-15.8-default (little endian) with glibc 2.3.5 Configure args: --enable-batch --enable-gui Features: threads zlib-1.2.3 bzip2-1.0.3 gd(jpg/png-1.2.8) iconv no-check-bounds --Runinfo-- User: admin (Warning: empty Password) - uptime: 0m 13s Enabled nets: Donkey Overnet BitTorrent FileTP Server usage: enabled Geoip: disabled, to enable adjust web_infos in downloads.ini for automatic download IP blocking: disabled, to enable adjust web_infos in downloads.ini for automatic download System info: Linux kanzler 2.6.13-15.8-default #1 Tue Feb 7 11:07:24 UTC 2006 i686 language: DE - locale: ISO-8859-1 - UTC offset: +0100 max_string_length: 16777211 - word_size: 32 - max_array_length: 4194303 max file descriptors: 1024 - max useable file size: 2^63-1 bits (do the maths ;-p)
Links
Einige Netzwerke (darunter Edonkey, Overnet und Bittorrent) arbeiten mit Links, die im WWW gefunden werden können. Diese Links zeigen gewissermassen auf die herunterzuladende Datei. Andere Netzwerke (darunter Gnutella, Soulseek und Fasttrack können diese Links nicht verwenden. Hence, mlnet search feature needs to be used within xDonkey.
Edonkey / Overnet
Ein Edonkey-Link sieht wie folgt aus.
ed2k://|file|XDonkey.dmg|4095788|d9224da0048123a9f1e6eb4751c22347|
Mit Hilfe des Plugins Mozilla Mldonkey Protocol Handler können die ed2k-Links direkt aus Webbrowser Firefox an Mldonkey geschickt werden. Dafür müssen allerdings unter "about:config" folgende Parameter gesetzt werden.
extensions.mldonkey.mode {mldonkey/emule} extensions.mldonkey.pass extensions.mldonkey.port extensions.mldonkey.server
Leider gibt es zur Zeit (24. Juli 2008) keine Version dieses Plugins, das mit Firefox 3.0.1 zusammenarbeitet - die Plugin-Version 2.3 taugt leider nicht.
Eine andere Möglichkeit, an gültige Server zu kommen, ist die Eingabe der folgenden Zeile in die Mldonkey-Befehlszeile.
urladd server.met http://www.gruk.org/server.met 36
Siehe dazu auch:
- ServerList (Mldonkey.Sourceforge.net)
Overnet-Link
Ein Overnet-Link sieht wie folgt aus.
fha://|file|XDonkey.dmg|4095788|d9224da0048123a9f1e6eb4751c22347|
Um einen Link in Mldonkey zu importieren, muss er erst in die Zwischenablage kopiert und dann ins Feld "ed2klink" der Schaltfläche "Search" eingefügt werden. bevor auf "Download" geklickt werden kann.
Bittorrent
Das Bittorrent-Netzwerk erlaubt keine Suche. Hier wird entweder eine besondere Datei mit der Endung ".torrent" benötigt oder man braucht die genaue Internetadresse der Datei, um sie herunterladen zu können. Um das Herunterladen zu beginnen, muss die Internetadresse der Datei oder ihr Pfad in das "e2dklink" der Schaltfläch "Search" eingegeben werden.
Beispiel (wobei sich die Datei "xxx.torrent" auf dem eigenen Desktop befindet).
http://xdonkey.macdk.net/dl/XDonkey.torrent /home/abc/Desktop/xxx.torrent
HTTP
Zum Herunterladen einer HTTP-Hyperlinks wird in die Mldonkey-Befehlszeile folgendes eingegeben.
http http://xdonkey.macdk.net/dl/XDonkey.dmg
FTP
Zum Herunterladen eines FTP-Hyperlinks wird in die Mldonkey-Befehlszeile folgendes eingegeben.
http ftp://xdonkey.macdk.net/dl/XDonkey.dmg
Weblinks
- MLDonkey Project Wiki - the official Wiki of MLDonkey (MLDonkey.Sourceforge.net)
- Deutsches MLDonkey Projekt Wiki (MLDonkey.org)
- http://www.mldonkey.org/dokuwiki/doku.php?id=start:downloads
- mldonkey.dyndns.info - your MLDonkey File Archive
- MLdonkey.org - Offizielle deutsche Community
- http://ed2k.2x4u.de/list.html
- http://ocbmaurice.dyndns.org/
- http://ed2k.2x4u.de/index.html