import os from "node:os" ;
import type { NetworkInterfacesSnapshot } from "../infra/network-interfaces.js" ;
type NetworkInterfaceEntry = NonNullable<ReturnType<typeof os.networkInterfaces>[string]>[number];
export type NetworkInterfaceEntryInput = {
address: string;
family: "IPv4" | "IPv6" ;
internal?: boolean ;
netmask?: string;
};
export function makeNetworkInterfaceEntry(
input: NetworkInterfaceEntryInput,
): NetworkInterfaceEntry {
if (input.family === "IPv6" ) {
return {
address: input.address,
family: "IPv6" ,
internal: input.internal ?? false ,
netmask: input.netmask ?? "" ,
cidr: null ,
mac: "" ,
scopeid: 0 ,
};
}
return {
address: input.address,
family: "IPv4" ,
internal: input.internal ?? false ,
netmask: input.netmask ?? "" ,
cidr: null ,
mac: "" ,
};
}
export function makeNetworkInterfacesSnapshot(
snapshot: Record<string, NetworkInterfaceEntryInput[]>,
): NetworkInterfacesSnapshot {
return Object.fromEntries(
Object.entries(snapshot).map(([name, entries]) => [
name,
entries.map((entry) => makeNetworkInterfaceEntry(entry)),
]),
);
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-09)
¤
*© Formatika GbR, Deutschland