update
This commit is contained in:
31
src/modules/fm-manager/utils.ts
Normal file
31
src/modules/fm-manager/utils.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { IncomingMessage } from 'node:http';
|
||||
import http from 'node:http';
|
||||
|
||||
export const getUserFromRequest = (req: IncomingMessage) => {
|
||||
const url = new URL(req.url, `http://${req.headers.host}`);
|
||||
const pathname = url.pathname;
|
||||
const keys = pathname.split('/');
|
||||
const [_, user, app] = keys;
|
||||
return {
|
||||
user,
|
||||
app,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
export const getDNS = (req: http.IncomingMessage) => {
|
||||
const hostName = req.headers.host;
|
||||
const ip = req.socket.remoteAddress;
|
||||
return { hostName, ip };
|
||||
};
|
||||
|
||||
export const isLocalhost = (hostName: string) => {
|
||||
return hostName.includes('localhost') || hostName.includes('192.168');
|
||||
};
|
||||
|
||||
export const isIpv4OrIpv6 = (hostName: string) => {
|
||||
const ipv4 = /^(\d{1,3}\.){3}\d{1,3}$/;
|
||||
const ipv6 = /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;
|
||||
return ipv4.test(hostName) || ipv6.test(hostName);
|
||||
};
|
||||
export const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
|
||||
Reference in New Issue
Block a user