090819项目进展:了解emule基础知识,猜想实现的方向
2009-08-19 20:48
344 查看
猜想了一下ed2k资源的内网搜索可能有两种方案:
一,对给定ip段的主机进行搜索,观察也没有ed2k资源正在进行交互,如果有,对资源名称进行分析记录,作为搜索依据。
二,定位eMule服务器,调用eMule公开的搜索API进行资源搜索。
方案一太FTP了,eMule客户端自己的搜索也是按照方案二的,方案二是比较现实的方向。
如果要在内网实现,需要这样几个步骤:
1,使用内网提供的client进行下载,wireshark抓包分析出server的地址;
2,目前内网提供的client仅仅只有依据ed2k下载的功能,估计只有hash匹配没有名字匹配,名字匹配必须另找接口;
3,有办法能够遍历server上的share list就更方便了,总共享量应该不大,能有list对资源利用有不小的作用,这个需要可以使用第2项进行覆盖,如果能有 按类型 搜索的API,获取一张.avi的查询结果,一张.doc的结果,加上常用的资源后缀,差不多也就是想要的share list了。
对eMule的原理了解太少,还好网上的资料比较丰富,但是还没找到头绪,近期定位每天读点文档,慢慢找感觉。
emule是如何搜索的?
每一个客户端连接到一个服务器作为他的主服务器。在连接时,由客户端告诉主服务器他share了那些文件,以及IP地址等其他信息。所以每一个服务器会记录所有登陆到他服务器上的以上信息。在本服务器搜索时,它会通过匹配记录的已知以上信息把查找结果反馈给搜索的客户端列表。
emule是如何下载的?
当客户端选择了一个文件下载时,它首先收集一个拥有该文档的客户端的列表。
它会先行查询主服务器所有登陆用户他们是否拥有该文件。然后再连接和查选其他服务器的登陆用户所拥有该文件的客户端列表。一旦它找到拥有该文件的其他客户端,它将请求每个客户端发送这个文件的不同片。直至最后文件由这个不同的片组装成一个完整的文件。
找到几篇精彩的博文,谢过几位前辈,先收藏了,慢慢拜读:
开源软件,用vb打造人人都可以用,人人都可以开发的P2P软件
http://blog.csdn.net/CHINAVBCODE/archive/2005/08/30/468097.aspx
emule应用及原理
http://blog.csdn.net/petit/archive/2005/03/27/332157.aspx
源码解析
http://blog.csdn.net/zhangshaohan/archive/2006/12.aspx
一,对给定ip段的主机进行搜索,观察也没有ed2k资源正在进行交互,如果有,对资源名称进行分析记录,作为搜索依据。
二,定位eMule服务器,调用eMule公开的搜索API进行资源搜索。
方案一太FTP了,eMule客户端自己的搜索也是按照方案二的,方案二是比较现实的方向。
如果要在内网实现,需要这样几个步骤:
1,使用内网提供的client进行下载,wireshark抓包分析出server的地址;
2,目前内网提供的client仅仅只有依据ed2k下载的功能,估计只有hash匹配没有名字匹配,名字匹配必须另找接口;
3,有办法能够遍历server上的share list就更方便了,总共享量应该不大,能有list对资源利用有不小的作用,这个需要可以使用第2项进行覆盖,如果能有 按类型 搜索的API,获取一张.avi的查询结果,一张.doc的结果,加上常用的资源后缀,差不多也就是想要的share list了。
对eMule的原理了解太少,还好网上的资料比较丰富,但是还没找到头绪,近期定位每天读点文档,慢慢找感觉。
emule是如何搜索的?
每一个客户端连接到一个服务器作为他的主服务器。在连接时,由客户端告诉主服务器他share了那些文件,以及IP地址等其他信息。所以每一个服务器会记录所有登陆到他服务器上的以上信息。在本服务器搜索时,它会通过匹配记录的已知以上信息把查找结果反馈给搜索的客户端列表。
emule是如何下载的?
当客户端选择了一个文件下载时,它首先收集一个拥有该文档的客户端的列表。
它会先行查询主服务器所有登陆用户他们是否拥有该文件。然后再连接和查选其他服务器的登陆用户所拥有该文件的客户端列表。一旦它找到拥有该文件的其他客户端,它将请求每个客户端发送这个文件的不同片。直至最后文件由这个不同的片组装成一个完整的文件。
找到几篇精彩的博文,谢过几位前辈,先收藏了,慢慢拜读:
开源软件,用vb打造人人都可以用,人人都可以开发的P2P软件
http://blog.csdn.net/CHINAVBCODE/archive/2005/08/30/468097.aspx
emule应用及原理
http://blog.csdn.net/petit/archive/2005/03/27/332157.aspx
源码解析
http://blog.csdn.net/zhangshaohan/archive/2006/12.aspx
相关文章推荐
- 090818项目进展:了解emule基础知识
- Android基础知识【项目实训-实现主界面上下两级导航】【3】
- Android基础知识【项目实训-实现二级导航“今日活动”及读取数据库】【5】
- 深度学习FPGA实现基础知识4(Mariana——腾讯深度学习平台的进展与应用)
- Android基础知识【项目实训-实现二级导航“我的账单”及用户登录对话框】【6】
- Android基础知识【项目实训-项目结构及主界面的实现】【4】
- java在线聊天项目 实现基本聊天功能后补充的其他功能详细需求分析 及所需要掌握的Java知识基础 SWT的激活方法,swt开发包下载,及破解激活码
- Java 中UDP原理机制及实现方式介绍(建议阅读者阅读前了解下Java的基础知识,一方便理解)
- 彻底了解RxJava(一)基础知识
- BLE4.0 server的基础知识了解
- 深度学习FPGA实现基础知识13(向专家致敬--深度学习-LeCun、Bengio和Hinton的联合综述)
- Python3 网络编程1--基础知识了解
- 串口通信基础知识及VC++实现
- 【集成】项目管理主题分享——项目管理基础知识(沙龙Ⅱ期)
- 项目中需要了解的一些Git知识
- 应该了解的一些并发基础知识
- Android开发-直播视讯(3)-创建一个Ubuntu虚拟机并实现VMtools文件夹共享-基础知识
- Delphi使用spcomm实现串口通信 基础知识及(两个实例)
- 2.Android基础总结.doc(第一节、基本知识了解)
- opengl es 基础知识了解