Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Ed2K Link Maker

by #include (Curate)
on Jun 03, 2003 at 03:56 UTC ( #262558=sourcecode: print w/ replies, xml ) Need Help??

Category: Miscellaneous
Author/Contact Info #include (
Description: A small script that makes Ed2K links for use with the eDonkey P2P network. Just pass the script a filename as an argument, and the Ed2K link is printed to STDOUT. Uses Digest::MD5.

MASSIVE UPDATE: I pretty much rewrote the script from scratch and added a bunch of stuff: the ability to be used as both a commandline tool AND a GUI tool, the ability to hash multiple files, and some minor bugfixes. If you want to use the GUI, you must have Tk installed.
# Revision: 0.4
# Author: #include
# License: GPL
# Creates a "hash" link for use with the
# eDonkey2000 network, and prints it to
# STDOUT.  Works as both a commandline tool
# and as a GUI tool.  If the script is passed
# a list of filenames as arguments, it will
# print a link for each file to STDOUT.
# If the script is run with NO arguments,
# it starts in GUI mode.  A Tk dialog will
# pop up and ask for a filename.  The file's
# Ed2K link is printed to STDOUT.
# Usage:
# $ perl > finishe
# $ perl
use Digest::MD5;
use strict;
my $text;

if ($#ARGV >= 0 )
  foreach my $fname (@ARGV)
    print make_ed2k_link($fname);
} else {
  # Start up the GUI
  use Tk;
  my $mw = MainWindow->new();
  $mw->Label(-text=>"Please enter a filename to hash:")->pack(-fill=>'
  $mw->Entry(-width => 25, -textvariable, \$text)->pack(-anchor => 'nw
  $mw->Button(-text => "OK",
    -command => \&do_hash )
    ->pack(-side => 'top',
    -anchor => 'nw',-fill=>'x');
  $mw->Button(-text => "Cancel",
    -command => sub { exit })
    ->pack(-side => 'top',
    -anchor => 'nw',-fill=>'x');


sub do_hash
    print make_ed2k_link($text);

sub make_ed2k_link
  my $ctx = Digest::MD5->new;
  open(TFILE,"<$fname") or die "Can't open target file ($fname).";
  close TFILE;
  my $fhash = $ctx->hexdigest;
  my $fsize = -s $fname;
  return "ed2k://|file|$fname|$fsize|$fhash|\n";

Comment on Ed2K Link Maker
Download Code
Replies are listed 'Best First'.
Re: Ed2K Link Maker
by Anonymous Monk on Dec 31, 2008 at 01:20 UTC

Back to Code Catacombs

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: sourcecode [id://262558]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (7)
As of 2015-12-02 07:05 GMT
Find Nodes?
    Voting Booth?

    My keyboard shows this many letters:

    Results (35 votes), past polls