jbenet的multiaddr的python实现
multiaddr的Python项目详细描述
用法
简单
frommultiaddrimportMultiaddr# construct from a stringm1=Multiaddr("/ip4/127.0.0.1/udp/1234")# construct from bytesm2=Multiaddr(bytes_addr=m1.to_bytes())assertstr(m1)=="/ip4/127.0.0.1/udp/1234"assertstr(m1)==str(m2)assertm1.to_bytes()==m2.to_bytes()assertm1==m2assertm2==m1assertnot(m1!=m2)assertnot(m2!=m1)
协议
frommultiaddrimportMultiaddrm1=Multiaddr("/ip4/127.0.0.1/udp/1234")# get the multiaddr protocol description objectsm1.protocols()# [Protocol(code=4, name='ip4', size=32), Protocol(code=17, name='udp', size=16)]
en/脱胶囊
frommultiaddrimportMultiaddrm1=Multiaddr("/ip4/127.0.0.1/udp/1234")m1.encapsulate(Multiaddr("/sctp/5678"))# <Multiaddr /ip4/127.0.0.1/udp/1234/sctp/5678>m1.decapsulate(Multiaddr("/udp"))# <Multiaddr /ip4/127.0.0.1>
隧道
multiaddr可以很好地表达隧道。
printer=Multiaddr("/ip4/192.168.0.13/tcp/80")proxy=Multiaddr("/ip4/10.20.30.40/tcp/443")printerOverProxy=proxy.encapsulate(printer)print(printerOverProxy)# /ip4/10.20.30.40/tcp/443/ip4/192.168.0.13/tcp/80proxyAgain=printerOverProxy.decapsulate(printer)print(proxyAgain)# /ip4/10.20.30.40/tcp/443
维护人员
原作者:@sbuss。
贡献
欢迎投稿。请签出the issues。
查看我们的contributing document了解更多关于我们如何工作以及一般贡献的信息。 请注意,所有与多格式相关的交互都受ipfsCode of Conduct的约束。
历史记录
0.0.7(2019-5-8)
- 包含子包
- 重构util和codec
0.0.5(2019-5-7)
- <未经修饰的字节
- 新异常
- 其他改进[通过alexander255#42]
0.0.2(2016-5-4)
- 修复未封装中引发索引器错误而不是 当原始multiaddr不包含 去胶囊。[经由fredthomsen#9]
- 增加测试覆盖率[通过fredthomsen#9]
0.0.1(2016-1-22)
- pypi上的第一个版本。