الملفات
codepill-sfu/app/src/Host.js
2024-10-09 13:56:36 +02:00

52 أسطر
1.0 KiB
JavaScript

'use strict';
module.exports = class Host {
constructor() {
this.authorizedIPs = new Map();
}
/**
* Get IP from req
* @param {object} req
* @returns string IP
*/
getIP(req) {
return req.headers['x-forwarded-for'] || req.headers['X-Forwarded-For'] || req.socket.remoteAddress || req.ip;
}
/**
* Get authorized IPs
* @returns object
*/
getAuthorizedIPs() {
return Object.fromEntries(this.authorizedIPs);
}
/**
* Set authorized IP
* @param {string} ip
* @param {boolean} authorized
*/
setAuthorizedIP(ip, authorized) {
this.authorizedIPs.set(ip, authorized);
}
/**
* Check if IP is authorized
* @param {string} ip
* @returns boolean
*/
isAuthorizedIP(ip) {
return this.authorizedIPs.has(ip);
}
/**
* Delete ip from authorized IPs
* @param {string} ip
* @returns boolean
*/
deleteIP(ip) {
return this.authorizedIPs.delete(ip);
}
};