Skip to content

Commit cbd2e1a

Browse files
committed
dns auditor
1 parent 0930c0c commit cbd2e1a

1 file changed

Lines changed: 50 additions & 0 deletions

File tree

Tooling/dns-checker.ps1

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
Write-Host "DNS Record Auditor - Write your URL here" -ForegroundColor Red
2+
$Domain = Read-Host
3+
$Domain = $Domain -replace '^https?://', ''
4+
$Domain = $Domain.TrimEnd("/")
5+
6+
$CsvPath = "$env:USERPROFILE\Desktop\DNS-Report-$($Domain.Replace('.', '_')).csv"
7+
$DnsResults = @()
8+
9+
function Get-DNSRecordType {
10+
param (
11+
[string]$Domain,
12+
[string]$RecordType
13+
)
14+
try {
15+
$records = Resolve-DnsName -Name $Domain -Type $RecordType -ErrorAction Stop
16+
17+
foreach ($rec in $records) {
18+
$script:DnsResults += [pscustomobject]@{
19+
Domain = $Domain
20+
Type = $rec.Type
21+
Name = $rec.Name
22+
IPAddress = $rec.IPAddress
23+
NameHost = $rec.NameHost
24+
MailEx = $rec.MailExchange
25+
}
26+
}
27+
} catch {
28+
# Log failure as empty record with error note
29+
$script:DnsResults += [pscustomobject]@{
30+
Domain = $Domain
31+
Type = $RecordType
32+
Name = $Domain
33+
IPAddress = $null
34+
NameHost = $null
35+
MailEx = "Lookup failed"
36+
}
37+
}
38+
}
39+
40+
# Run lookups
41+
"A", "AAAA", "MX", "NS", "TXT", "SOA", "CNAME" | ForEach-Object {
42+
Get-DNSRecordType -Domain $Domain -RecordType $_
43+
}
44+
45+
# Export to CSV
46+
$DnsResults | Export-Csv -Path $CsvPath -NoTypeInformation -Encoding UTF8
47+
Write-Host "`CSV report written to: $CsvPath" -ForegroundColor Green
48+
49+
# Optional: Open it
50+
Start-Process $CsvPath

0 commit comments

Comments
 (0)