1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ip = void 0;
- const os_1 = __importDefault(require("os"));
- exports.ip = {
- address() {
- const interfaces = os_1.default.networkInterfaces();
- // Default to `ipv4`
- const family = normalizeFamily();
- const all = Object.values(interfaces).map((addrs = []) => {
- const addresses = addrs.filter((details) => {
- const detailsFamily = normalizeFamily(details.family);
- if (detailsFamily !== family || exports.ip.isLoopback(details.address)) {
- return false;
- }
- return true;
- });
- return addresses.length ? addresses[0].address : undefined;
- }).filter(Boolean);
- return !all.length ? exports.ip.loopback(family) : all[0];
- },
- isLoopback(addr) {
- return /^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/
- .test(addr)
- || /^fe80::1$/.test(addr)
- || /^::1$/.test(addr)
- || /^::$/.test(addr);
- },
- loopback(family) {
- // Default to `ipv4`
- family = normalizeFamily(family);
- if (family !== 'ipv4' && family !== 'ipv6') {
- throw new Error('family must be ipv4 or ipv6');
- }
- return family === 'ipv4' ? '127.0.0.1' : 'fe80::1';
- }
- };
- function normalizeFamily(family) {
- if (family === 4) {
- return 'ipv4';
- }
- if (family === 6) {
- return 'ipv6';
- }
- return family ? family.toLowerCase() : 'ipv4';
- }
- //# sourceMappingURL=ip.js.map
|