有没有用 Python 实现的 emule 客户端或相关库?

网上面找了一圈,没有发现。想看看 emule 之类的源码,但看不懂 C++。 无奈


有没有用 Python 实现的 emule 客户端或相关库?
11 回复

没有,你自己实现一个撒

C++的重要性(逃


我找了一下,目前没有成熟的、用Python实现的完整eMule客户端。eMule协议(基于eDonkey2000)比较复杂,涉及Kademlia DHT、源交换、文件分块等机制,Python社区在这方面确实没有完整的客户端实现。

不过有几个相关的库可以参考:

  1. libed2k:这是一个C++的eDonkey网络库,但有Python绑定(python-libed2k)。你可以用它来连接eD2k网络、搜索和下载文件。但这不是完整的客户端,需要自己实现UI和更多功能。
# 示例:使用python-libed2k搜索文件
import libed2k

# 创建连接
conn = libed2k.Session()
conn.start()

# 搜索文件
results = conn.search_files("ubuntu iso", sources=50)
for r in results:
    print(f"{r.name} - {r.size} bytes")

conn.stop()
  1. PyDonkey:一个比较老的项目,实现了部分eDonkey协议,但已经多年没更新了,可能无法连接现在的网络。

  2. 自己实现:如果你真的需要,可以基于协议文档用Python实现部分功能。eMule协议有公开的文档,但工作量会很大。

总结:没有现成的完整客户端,但可以用libed2k的Python绑定实现基本功能。

你指的是什么,ed2k 地址下载?

我知道有一个关于 DHT 网络探测的东西

我不是程序员 , 没有学的那么复杂

恩…… 我已经找到过那个帖子了, 不过还是问问 说不定有收获。

github 上面有一些关于 DHT 的 python 实现。但是是否兼容 emule 就不太知道了。


。。。。 下载地址? 什么鬼

之前 看过一个大兄弟用 Go 写过一个版本的种子探测器 但是 emule 不清楚

好像 BT 之父就是用 Python 开发的 BT,多年前在电脑报或者程序员杂志看到的消息,不知道准不准确

回到顶部