js-libp2p-tcp/src/get-multiaddr.js

29 lines
613 B
JavaScript
Raw Normal View History

2016-08-05 14:22:18 +02:00
'use strict'
const multiaddr = require('multiaddr')
const Address6 = require('ip-address').Address6
module.exports = (socket) => {
2018-02-07 06:40:00 +00:00
let ma
2016-08-05 14:22:18 +02:00
if (socket.remoteFamily === 'IPv6') {
2018-02-07 06:40:00 +00:00
const addr = new Address6(socket.remoteAddress)
2016-08-05 14:22:18 +02:00
if (addr.v4) {
2018-02-07 06:40:00 +00:00
const ip4 = addr.to4().correctForm()
ma = multiaddr('/ip4/' + ip4 +
'/tcp/' + socket.remotePort
)
2016-08-05 14:22:18 +02:00
} else {
2018-02-07 06:40:00 +00:00
ma = multiaddr('/ip6/' + socket.remoteAddress +
'/tcp/' + socket.remotePort
)
2016-08-05 14:22:18 +02:00
}
} else {
2018-02-07 06:40:00 +00:00
ma = multiaddr('/ip4/' + socket.remoteAddress +
'/tcp/' + socket.remotePort)
2016-08-05 14:22:18 +02:00
}
2018-02-07 06:40:00 +00:00
return ma
2016-08-05 14:22:18 +02:00
}