Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
multiaddr implementation (binary + string representation of network addresses)
JavaScript implementation of multiaddr.
A standard way to represent addresses that
$ node
> const multiaddr = require('multiaddr')
> const addr = multiaddr("/ip4/127.0.0.1/udp/1234")
<Multiaddr /ip4/127.0.0.1/udp/1234>
> addr.buffer
<Buffer 04 7f 00 00 01 11 04 d2>
> addr.toString()
'/ip4/127.0.0.1/udp/1234'
> addr.protos()
[
{code: 4, name: 'ip4', size: 32},
{code: 17, name: 'udp', size: 16}
]
> addr.nodeAddress()
{
family: "IPv4",
port: 1234,
address: "127.0.0.1"
}
> addr.encapsulate('/sctp/5678')
<Multiaddr /ip4/127.0.0.1/udp/1234/sctp/5678>
const multiaddr = require('multiaddr')
Creates a multiaddress from a string (e.g. /ip4/127.0.0.1/udp/1234
).
Creates a multiaddress from another multiaddress' raw bytes.
The raw bytes representing this multiaddress.
The multiaddress in string format (e.g. /ip4/127.0.0.1/udp/1234
).
Returns the codes of the protocols in the multiaddress, in left-to-right order.
addr.protoCodes()
// [4, 6]
Returns the names of the protocols in the multiaddress, in left-to-right order.
addr.protoNames()
// ['ip4', 'tcp']
Returns description objects of the protocols in the multiaddress, in left-to-right order.
addr.protos()
// [
// { code: 4, name: 'ip4', size: 32},
// { code: 17, name: 'udp', size: 16}
// ]
Each object contains the protocol code, protocol name, and the size of its address space in bits.
Utility functions for getting NodeJS-friendly address information from a multiaddress.
Returns a NodeJS-friendly object describing the left-most address in the multiaddress.
addr.nodeAddress()
// { family: "IPv4", port:1234, address: "127.0.0.1" }
Note that protocol information is left out: in Node (and most network systems) the protocol is unknowable given only the address.
Constructs a multiaddress, given a NodeJS-friendly address object and a protocol.
addr.fromNodeAddress({family: "IPv4", port:1234, address: "127.0.0.1"}, 'udp')
// <Multiaddr /ip4/127.0.0.1/udp/1234>
Returns a multiaddress, given a URI in the format <proto><IPv>://<IP Addr>[:<proto port>]
addr = multiaddr.fromStupidString("udp4://127.0.0.1:1234")
// <Multiaddr /ip4/127.0.0.1/udp/1234>
NOT IMPLEMENTED
NOT IMPLEMENTED
Returns a new multiaddress that encapsulates addr
in a new protocol string,
str
.
addr.encapsulate('/sctp/5678')
// <Multiaddr /ip4/127.0.0.1/udp/1234/sctp/5678>
Returns a new multiaddress with the right-most protocol string str
removed.
multiaddress('/ip4/127.0.0.1/udp/1234').decapsulate('/udp')
// <Multiaddr /ip4/127.0.0.1>
Given these encapsulation/decapsulate tools, multiaddresses lend themselves to expressing tunnels very nicely:
const printer = multiaddr('/ip4/192.168.0.13/tcp/80')
const proxy = multiaddr('/ip4/10.20.30.40/tcp/443')
const printerOverProxy = proxy.encapsulate(printer)
// <Multiaddr /ip4/10.20.30.40/tcp/443/ip4/192.168.0.13/tcp/80>
> npm i multiaddr
const multiaddr = require('multiaddr')
The code published to npm that gets loaded on require is in fact a ES5 transpiled version with the right shims added. This means that you can require it and use with your favourite bundler without having to adjust asset management process.
const multiaddr = require('multiaddr')
<script>
TagLoading this module through a script tag will make the Multiaddr
obj available in
the global namespace.
<script src="https://npmcdn.com/multiaddr/dist/index.min.js"></script>
<!-- OR -->
<script src="https://npmcdn.com/multiaddr/dist/index.js"></script>
NOTE: You will need access to the Node.js Buffer
API. If you are running
in the browser, you can access it with multiaddr.Buffer
or you can install
feross/buffer.
MIT
1.3.1 (2016-04-18)
<a name="1.3.0"></a>
FAQs
multiaddr implementation (binary + string representation of network addresses)
The npm package multiaddr receives a total of 65,874 weekly downloads. As such, multiaddr popularity was classified as popular.
We found that multiaddr demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.