分享
 
 
 

文件共享势力无法档 9行代码写出P2P程序

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

TinyP2P是一个实用的点对点文件共享应用程序,由Ed Felten博士用Python语言编写而成。而它令人称奇之处,是它仅仅包含了15行代码!作者称,他写TinyP2P只是为了阐明编写点对点应用程序的难度罢了。P2P程序可以非常简单,一个熟练的程序员随便都可以写出来,所以,任何阻止他们创作的行为都将是徒劳无功的。

(每一行都多只有80个字母。第一行不算--它只起注释之用,计算机在读入的时候会忽略它)

当然,作者编写这一程序并非为了方便别人侵犯版权,他自己也不能宽恕侵犯他人版权的举动。这一程序的设计初衷并没有协助文件共享之意,它存在价值主要在于它是一个概念的实现。一个更为实用的程序速度必须更快,更安全,对连接失败的处理机制更为完善,但那一目标的实现需要更多行代码。(TinyP2P的源代码可以由下面的链接处下载)

工作原理:程序创建了一个小型的网络,可以用于一群朋友或者商业伙伴之间共享文件。它不适用于非常大的网络;相反,许多小型网络可以共存。每一个网络由一个密码保护;只有知道网络密码的人才可以访问它。(但是网络对于窃听信息的攻击者而言是毫无安全性可言的。)

程序使用标准的通讯协议:HTTP和XML-RPC。HTTP就是在网页浏览器中普遍使用的协议,XML-RPC则在提供网页服务方面被广泛应用。

程序可作为服务端,也可作为客户端。当作为服务端运行时,程序与一个网络中的其他服务端联接,共享当前目录中的所有文件,以供网络用户下载。

尽管如此,TinyP2P毕竟还使用了一个现成的XML-RPC服务端类库。另一个文件共享程序--MoleSter更令人吃惊:它仅仅由9行Perl代码构成,而且只应用了TCP协议。新版本MoleSter0.0.2以最小的形式发布:仍然是9行,但字节数少了,只有543个字节(0.0.1版为625)。

源代码:

# tinyp2p.py 1.0 (documentation at http://freedom-to-tinker.com/tinyp2p.html)

import sys, os, SimpleXMLRPCServer, xmlrpclib, re, hmac # (C) 2004, E.W. Felten

ar,pw,res = (sys.argv,lambda u:hmac.new(sys.argv[1],u).hexdigest(),re.search)

pxy,xs = (xmlrpclib.ServerProxy,SimpleXMLRPCServer.SimpleXMLRPCServer)

def ls(p=""):return filter(lambda n:(p=="")or res(p,n),os.listdir(os.getcwd()))

if ar[2]!="client": # license: http://creativecommons.org/licenses/by-nc-sa/2.0

myU,prs,srv = ("http://"+ar[3]+":"+ar[4], ar[5:],lambda x:x.serve_forever())

def pr(x=[]): return ([(y in prs) or prs.append(y) for y in x] or 1) and prs

def c(n): return ((lambda f: (f.read(), f.close()))(file(n)))[0]

f=lambda p,n,a:(p==pw(myU))and(((n==0)and pr(a))or((n==1)and [ls(a)])or c(a))

def aug(u): return ((u==myU) and pr()) or pr(pxy(u).f(pw(u),0,pr([myU])))

pr() and [aug(s) for s in aug(pr()[0])]

(lambda sv:sv.register_function(f,"f") or srv(sv))(xs((ar[3],int(ar[4]))))

for url in pxy(ar[3]).f(pw(ar[3]),0,[]):

for fn in filter(lambda n:not n in ls(), (pxy(url).f(pw(url),1,ar[4]))[0]):

(lambda fi:fi.write(pxy(url).f(pw(url),2,fn)) or fi.close())(file(fn,"wc"))

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有