From 14ab980efbab024415fa7552746f26570c9aa407 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Wed, 12 Dec 2018 19:23:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20URL=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20IP-=D0=B0?= =?UTF-8?q?=D0=B4=D1=80=D0=B5=D1=81=D0=B0=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=B0=20=D0=B2=D1=85=D0=BE=D0=B4=D1=8F=D1=89=D0=B8=D1=85?= =?UTF-8?q?=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/utils.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/core/utils.js b/core/utils.js index 604cc85..ee3454a 100644 --- a/core/utils.js +++ b/core/utils.js @@ -8,6 +8,7 @@ //---------------------- const _ = require("lodash"); //Работа с массивами и объектами +const os = require("os"); //Средства операционной системы const Schema = require("validate"); //Схемы валидации const nodemailer = require("nodemailer"); //Отправка E-Mail сообщений const { @@ -222,6 +223,37 @@ const sendMail = prms => { }); }; +//Сборка URL по адресу сервиса и функции сервиса +const buildURL = prms => { + //Проверяем структуру переданного объекта для старта + let sCheckResult = validateObject(prms, prmsUtilsSchema.buildURL, "Параметры функции формирования URL"); + //Если структура объекта в норме + if (!sCheckResult) { + //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! КОНТРОЛЬ КОРРЕКТНОСТИ + return `${prms.sSrvRoot}/${prms.sFnURL}`; + } else { + throw new ServerError(SERR_OBJECT_BAD_INTERFACE, sCheckResult); + } +}; + +//Получение списка IP-адресов хоста сервера +const getIPs = () => { + let ips = []; + //получим список сетевых интерфейсов + const ifaces = os.networkInterfaces(); + //обходим сетевые интерфейсы + Object.keys(ifaces).forEach(ifname => { + ifaces[ifname].forEach(iface => { + //пропускаем локальный адрес и не IPv4 адреса + if ("IPv4" !== iface.family || iface.internal !== false) return; + //добавим адрес к резульату + ips.push(iface.address); + }); + }); + //вернем ответ + return ips; +}; + //----------------- // Интерфейс модуля //----------------- @@ -233,3 +265,5 @@ exports.getAppSrvModuleName = getAppSrvModuleName; exports.getAppSrvFunctionName = getAppSrvFunctionName; exports.getAppSrvFunction = getAppSrvFunction; exports.sendMail = sendMail; +exports.buildURL = buildURL; +exports.getIPs = getIPs;