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

34 lines
764 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
const debug = require('debug')
const log = debug('libp2p:tcp:get-multiaddr')
2016-08-05 14:22:18 +02:00
module.exports = (socket) => {
2018-02-07 06:40:00 +00:00
let ma
2016-08-05 14:22:18 +02:00
try {
if (socket.remoteFamily === 'IPv6') {
const addr = new Address6(socket.remoteAddress)
2018-02-07 06:40:00 +00:00
if (addr.v4) {
const ip4 = addr.to4().correctForm()
ma = multiaddr('/ip4/' + ip4 +
'/tcp/' + socket.remotePort
)
} else {
ma = multiaddr('/ip6/' + socket.remoteAddress +
'/tcp/' + socket.remotePort
)
}
2016-08-05 14:22:18 +02:00
} else {
ma = multiaddr('/ip4/' + socket.remoteAddress +
'/tcp/' + socket.remotePort)
2016-08-05 14:22:18 +02:00
}
} catch (err) {
log(err)
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
}