VB.DNSEnrichment

0.5.0

Resolve private IP addresses to hostname, MAC, vendor, and device class through an 11-step enrichment pipeline. Persists results in SQLite for cross-run caching and DHCP churn analysis.

Minimum PowerShell version

5.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name VB.DNSEnrichment

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name VB.DNSEnrichment

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2026 Vibhu. All rights reserved.

Package Details

Author(s)

  • Vibhu Bhatnagar

Tags

DNS Enrichment IP SQLite AD DHCP SNMP Networking RTSP mDNS PowerShell Sysadmin Windows MSP Automation VBTools

Functions

Get-VBEnrichmentContext Initialize-VBEnrichmentDatabase Get-VBADComputer Get-VBDHCPLease Get-VBPTRRecord Get-VBARPEntry Resolve-VBDeviceClass Invoke-VBIPEnrichment Get-VBEnrichmentResult Export-VBEnrichmentResult Get-VBTCPFingerprint Get-VBHTTPBanner Get-VBSNMPIdentity Get-VBOUIVendor Get-VBRTSPBanner Get-VBmDNSRecord Get-VBSwitchARP

Dependencies

Release Notes

v0.4.0 (2026-05-11) -- Round 4: Sensor layers (RTSP, mDNS, Switch ARP) + PS7 parallel active probes
- Get-VBRTSPBanner (Layer 8): TCP 554 banner grab; high-confidence camera/NVR signal
- Get-VBmDNSRecord (Layer 9): dns-sd.exe browse+resolve for 5 service types; one-shot session cache
- Get-VBSwitchARP (Layer 10): SNMP walk of ARP/FDB/ifAlias on managed switches; one-shot session cache
- Invoke-VBIPEnrichment: PS7 ForEach-Object -Parallel for active probes (steps 5-11) when Context.CanUseParallel; passive layers always sequential; classification + SQLite always sequential

v0.3.0 (2026-05-11) -- Round 3: Active probe layers (TCP, HTTP, SNMP, OUI)
- Get-VBTCPFingerprint: 24-port async concurrent scan using BeginConnect/WaitOne (~300 ms)
- Get-VBHTTPBanner: title + Server header, PS 5.1 cert callback workaround, 4-port fallback chain
- Get-VBSNMPIdentity: olePrn COM sysDescr/sysName/sysLocation, community string iteration
- Get-VBOUIVendor: IEEE OUI CSV auto-download + 30-day refresh, session hashtable cache, vendor->class map
- Invoke-VBIPEnrichment: active probe stubs replaced; SNMP gates on context flag; OUI always runs if MAC known
- Orchestrator now wires HTTP/SNMP hostname resolution into IsResolved gate

v0.2.0 (2026-05-11) -- Round 2: Passive layers + orchestrator (Phase 6 ship gate)
- Get-VBADComputer (Layer 1): one-shot AD cache, OSClass/OU detection
- Get-VBDHCPLease (Layer 2): one-shot DHCP lease cache across all scopes
- Get-VBPTRRecord (Layer 3): PTR lookup with forward-confirmation, PS5.1 fallback
- Get-VBARPEntry (Layer 4): arp -a cache with optional ping-to-populate
- Resolve-VBDeviceClass: 13-tier classification logic (pure signal -> class)
- Invoke-VBIPEnrichment: orchestrator with SQLite cache, stale-row detection, DHCP churn history
- Get-VBEnrichmentResult: SQLite query with IP/class/date/unresolved filters
- Export-VBEnrichmentResult: CSV (UTF-8 BOM) / JSON / Object pipeline pass-through

v0.1.0 (2026-05-10) -- Round 1: Skeleton + Context + Storage
- Module skeleton (manifest, loader, .editorconfig)
- Sql/001_init.sql schema (Enrichment, EnrichmentHistory, SchemaVersion)
- Private helpers: Test-VBPrivateIP, ConvertTo-VBNormalisedMAC, New-VBLayerResult, Invoke-VBSqliteCommand, Write-VBEnrichmentProgress
- Get-VBEnrichmentContext (14 prerequisite checks + console report)
- Initialize-VBEnrichmentDatabase (idempotent schema migration)

FileList

Version History

Version Downloads Last updated
0.5.0 (current version) 0 5/19/2026