61 lines
1.3 KiB
JavaScript
61 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
var PromiseA = require('bluebird').Promise;
|
|
var natUpnp = require('nat-upnp');
|
|
|
|
exports.upnpForward = function (port) {
|
|
return natUpnp.createClient({ timeout: 1800 }).then(function (client) {
|
|
return client.portMapping({
|
|
public: port.public,
|
|
private: port.private || port.public,
|
|
ttl: port.ttl || 0
|
|
})/*.then(function () {
|
|
var promitter = client.getMappings();
|
|
|
|
promitter.on('entry', function (entry, i) {
|
|
console.log('entry', i);
|
|
console.log(entry);
|
|
}).then(function (mappings) {
|
|
console.log('mappings');
|
|
console.log(mappings);
|
|
});
|
|
|
|
return promitter;
|
|
})*/;
|
|
});
|
|
};
|
|
|
|
/*
|
|
client.portUnmapping({
|
|
public: 80
|
|
});
|
|
|
|
.findGateway().then(function (stuff) {
|
|
console.log('[a] gateway');
|
|
console.log(stuff.gateway);
|
|
console.log('[a] address');
|
|
console.log(stuff.address);
|
|
}).then(function () {
|
|
return client
|
|
*/
|
|
|
|
/*
|
|
client.getMappings({ local: true }, function(err, results) {
|
|
console.log('local mappings', results);
|
|
});
|
|
|
|
client.externalIp(function(err, ip) {
|
|
console.log('ext-ip', ip);
|
|
});
|
|
*/
|
|
|
|
if (require.main === module) {
|
|
exports.upnpForward({ public: 65080, private: 65080, ttl: 0 }).then(function () {
|
|
console.log('done');
|
|
}).catch(function (err) {
|
|
console.error('ERROR');
|
|
console.error(err);
|
|
throw err;
|
|
});
|
|
}
|