Mldonkey
Mldonkey (auch: MLDonkey) ist eine in der Programmiersprache Objective CAML geschriebene Peer-to-Peer-Software. Derzeit unterstützte Netzwerke sind:
- eDonkey2000
- Overnet
- Gnutella
- Fasttrack (Kazaa)
- Bittorrent
- Kademlia
- Soulseek
- Directconnect
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> | cancel download (use arg 'all' for all files) |
commit | move downloaded files to incoming directory |
confirm <yes|no|what> | confirm cancellation |
dllink <link> | download ed2k, sig2dat, torrent or other link |
dllinks <file> | download all the links contained in the file |
downloaders | display downloaders list |
pause <num> | pause a download (use arg 'all' for all files) |
preview <file number> | start previewer for file <file number> |
priority <priority> <files numbers> | change file priorities |
rename <num> "<new name>" | change name of download <num> to <new name> |
resume <num> | resume a paused download (use arg 'all' for all files) |
test_recover <num> | print the segments downloaded in file |
vd <num> | view file info |
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 numbers> | remove friend (use arg 'all' for all friends) |
friends | display all friends |
gfr <client num> | ask friend files |
vfr | view friends |
Driver/General | |
activity <minutes> | print activity in the last <minutes> minutes |
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> | add a new mldonkey user |
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
Some networks, like eDonkey/overnet and BitTorrent work using links that can be found on the web. Those links "tag" the file to be downloaded. Other networks, as Gnutella, Soulseek and FastTrack cannot use those links. 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