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
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
-
- PSSQLite (>= 1.0.0)
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
- VB.DNSEnrichment.nuspec
- CLAUDE.md
- Documentation\dnsenrichment-module-design-v2.md
- Documentation\vb-dnsenrichment-developer-Audit-todo.md
- Invoke-VBDNSEnrichmentTestRun.ps1
- Private\ConvertFrom-VBSqliteEnrichmentRow.ps1
- Private\ConvertTo-VBNormalisedMAC.ps1
- Private\Format-VBEnrichmentContext.ps1
- Private\Get-VBARPTable.ps1
- Private\Invoke-VBLoadOUITable.ps1
- Private\Invoke-VBSqliteCommand.ps1
- Private\Invoke-VBSwitchSNMPWalk.ps1
- Private\Invoke-VBmDNSBrowse.ps1
- Private\New-VBLayerResult.ps1
- Private\Test-VBPrivateIP.ps1
- Private\Write-VBEnrichmentProgress.ps1
- Public\Export-VBEnrichmentResult.ps1
- Public\Get-VBADComputer.ps1
- Public\Get-VBARPEntry.ps1
- Public\Get-VBDHCPLease.ps1
- Public\Get-VBEnrichmentContext.ps1
- Public\Get-VBEnrichmentResult.ps1
- Public\Get-VBHTTPBanner.ps1
- Public\Get-VBOUIVendor.ps1
- Public\Get-VBPTRRecord.ps1
- Public\Get-VBRTSPBanner.ps1
- Public\Get-VBSNMPIdentity.ps1
- Public\Get-VBSwitchARP.ps1
- Public\Get-VBTCPFingerprint.ps1
- Public\Get-VBmDNSRecord.ps1
- Public\Initialize-VBEnrichmentDatabase.ps1
- Public\Invoke-VBIPEnrichment.ps1
- Public\Resolve-VBDeviceClass.ps1
- README.md
- Sql\001_init.sql
- Test-VBDNSEnrichmentModule.ps1
- VB.DNSEnrichment.psd1
- VB.DNSEnrichment.psm1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.5.0 (current version) | 0 | 5/19/2026 |