Catalog npm
PACKAGE EXPLORERView in registry

@0biwank/gethwid

npm

Get Hardware ID (HWID) of the machine using a native Node.js addon built with N-API.

hardware-idhwidnapinative-addonnode-addonsystem-info
Versions collected3
Direct dependencies2From release 1.0.3
Last observed20 Oct, 22:05 UTC

README

Current package documentation

getHWID

A native Node.js module for retrieving hardware identification information on Windows systems. This module uses N-API to access Windows WMI (Windows Management Instrumentation) and system firmware data.

Features

  • CPU Serial: Get the processor ID from CPU
  • Disk Serial: Retrieve the serial number of physical storage devices
  • Motherboard Serial: Fetch motherboard serial number
  • MAC Address: Get the network adapter's MAC address
  • Built with N-API for native access
  • Includes TypeScript definitions

Requirements

  • Node.js: >= 14.0.0
  • Platform: Windows (Win32) only
  • Build Tools: Python 3.x and C++ compiler (for building from source)

Installation

npm install @0biwank/gethwid

Usage

JavaScript (ESM)

import { getCPUSerial, getDiskSerial, getMotherboardSerial, getMacAddress } from '@0biwank/gethwid';

// Get CPU Serial
const cpuSerial = getCPUSerial();
console.log('CPU Serial:', cpuSerial);

// Get Disk Serial
const diskSerial = getDiskSerial();
console.log('Disk Serial:', diskSerial);

// Get Motherboard Serial
const mbSerial = getMotherboardSerial();
console.log('Motherboard Serial:', mbSerial);

// Get MAC Address
const macAddress = getMacAddress();
console.log('MAC Address:', macAddress);

JavaScript (CommonJS with default export)

import getHWID from '@0biwank/gethwid';

const cpu = getHWID.getCPUSerial();
const disk = getHWID.getDiskSerial();
const mb = getHWID.getMotherboardSerial();
const mac = getHWID.getMacAddress();

console.log({ cpu, disk, mb, mac });

TypeScript

import { getCPUSerial, getDiskSerial, getMotherboardSerial, getMacAddress } from '@0biwank/gethwid';

const cpuSerial: string = getCPUSerial();
const diskSerial: string = getDiskSerial();
const mbSerial: string = getMotherboardSerial();
const macAddress: string = getMacAddress();

console.log({
  cpu: cpuSerial,
  disk: diskSerial,
  motherboard: mbSerial,
  mac: macAddress
});

API Reference

getCPUSerial(): string

Returns the processor ID from the CPU.

Returns: A string containing the CPU processor ID.

Example:

const cpu = getCPUSerial();

getDiskSerial(): string

Returns the serial number of the primary physical disk/storage device.

Returns: A string containing the disk serial number.

Example:

const disk = getDiskSerial();

getMotherboardSerial(): string

Returns the serial number of the motherboard/baseboard.

Returns: A string containing the motherboard serial number.

Example:

const mb = getMotherboardSerial();

getMacAddress(): string

Returns the MAC (Media Access Control) address of the primary network adapter.

Returns: A string containing the MAC address in standard notation (XX:XX:XX:XX:XX:XX).

Example:

const mac = getMacAddress();

How It Works

This module uses:

  1. Windows WMI (Windows Management Instrumentation) for CPU, disk, and motherboard information
  2. System Firmware Table (via GetSystemFirmwareTable) for system UUID and detailed hardware info
  3. N-API for seamless integration between Node.js and native C++ code

Building from Source

If you need to rebuild the module:

# Install dependencies
npm install

# Rebuild the native addon
npm run rebuild

Prerequisites for Building

  • Node.js with development headers
  • Python 3.x
  • Microsoft Visual Studio (Community Edition is sufficient) with C++ workload

Testing

Run the test suite:

npm test

This will execute test.js and display hardware information for your system.

Limitations

  • Windows Only: This module only works on Windows systems (Win32)
  • Administrator Privileges: Some information may require elevated privileges
  • Virtual Machines: Virtualized environments may return virtual hardware identifiers
  • Dual Boot: Only detects hardware of the current Windows installation

Error Handling

Functions return empty strings if hardware information cannot be retrieved:

const cpuSerial = getCPUSerial();

if (!cpuSerial) {
  console.warn('Could not retrieve CPU serial');
} else {
  console.log('CPU:', cpuSerial);
}

Performance

All functions execute synchronously and typically complete quickly by accessing system information through WMI queries.

License

MIT © Kunal Dubey

Repository

GitHub: 0biwank/getHWID

Contributing

Contributions and bug reports are welcome. Please open an issue or submit a pull request on GitHub.

Disclaimer

This module retrieves hardware identification information for legitimate purposes such as:

  • System administration
  • License key generation
  • Device identification for software activation
  • Hardware inventory management

Users are responsible for complying with applicable laws and privacy regulations when using hardware identification data.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 3

Collected releases
VersionPublishedDirect dependenciesOpen version
1.0.3Registry latest18 Dec 20252
1.0.24 Dec 20252
1.0.04 Dec 20252

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
0biwank/gethwid

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:05 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:59bf9a9a33ce5b35505549f50dd69c05b41f8297e69fb03dfaa4e99c5a8d4591