ddnsman
Version:
DDNS Management
38 lines (37 loc) • 1.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const debug_1 = __importDefault(require("debug"));
const net_1 = require("net");
const info = debug_1.default('ddnsman:info');
const error = debug_1.default('ddnsman:error');
exports.getPublicIP = async () => {
return new Promise((resolve, reject) => {
const data = [];
net_1.connect({
host: 'ns1.dnspod.net',
port: 6666
})
.on('data', (chunk) => {
data.push(chunk);
})
.on('end', () => {
const ip = Buffer.concat(data).toString();
if (net_1.isIP(ip)) {
resolve(ip);
}
else {
reject(new TypeError('Invalid IP address:' + ip));
}
})
.on('error', (err) => {
reject(err);
});
});
};
exports.logger = {
info,
error
};