Mldonkey: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
Zeile 608: Zeile 608:


{{cat|Peer-to-Peer-Software|Peer-to-Peer-Software}}
{{cat|Peer-to-Peer-Software|Peer-to-Peer-Software}}
{{cat|UNFERTIG}}

Version vom 20. Januar 2009, 20:15 Uhr

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:
-network <netname>
-minsize <size>
-maxsize <size>
-media <Video|Audio|...>
-Video
-Audio
-format <format>
-title <word in title>
-album <word in album>
-artist <word in artist>
-field <field> <fieldvalue>
-not <word>
-and <word>
-or <word>

s <query> search for files on all networks

With special args:
-network <netname>
-minsize <size>
-maxsize <size>
-media <Video|Audio|...>
-Video
-Audio
-format <format>
-title <word in title>
-album <word in album>
-artist <word in artist>
-field <field&gt <fieldvalue>
-not <word>
-and <word>
-or <word>

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:

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

Vorlage:dewi