View Comments

Molester: P2P in 9 Lines of Perl

$p=shift;$a=shift;i(shift);socket S,2,1,6;bind S,&a($a);listen
S,5;$/=undef;while(@ARGV&&($_=”$p $a
f”.shift)||accept(C,S)&&($_=)&&close
C){m!^(.*?) (.*?) ([e-i])([^/]*)/!s&&$1 eq$p&&&$3($2,$4,$’);}sub e{open
F,’>',$_[1];print F $_[2];close F}sub f{&s($_,@_)for keys %k}sub
g{open(F,’<',$_[1])&&&s($_[0],$a,"e$_[1]",);close F}sub
h{&s($_[0],$_,’i')for keys %k}sub i{$k{$_[0]}=1}sub
a{$_[0]=~/:/;pack’CxnC4x8′,2,$’,split’\.’,$`}sub
s{socket X,2,1,6;$w=shift;if(connect X,&a($w)){print X
“$p $_[0] $_[1]/$_[2]“;close X}else{undef $k{$p}}}

Link: http://ansuz.sooke.bc.ca/software/molester/

blog comments powered by Disqus