DNS-Server: -s/-server als @-freie Alternative + @server quoten

PowerShell deutet fuehrendes @ als Splatting-Operator; @server muss
daher gequotet werden. Zusaetzlich -s/-server-Parameter ergaenzt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
maierch
2026-07-02 18:55:26 +02:00
parent 81b38c024d
commit a2482df6af
2 changed files with 36 additions and 5 deletions
+16 -3
View File
@@ -11,14 +11,17 @@
Freie dig-artige Argumente:
name abzufragender Name (z.B. example.com)
type Record-Typ (A, AAAA, MX, TXT, NS, CNAME, SOA, SRV, PTR, ...)
@server zu verwendender DNS-Server (z.B. @8.8.8.8)
@server zu verwendender DNS-Server; in PowerShell zwingend quoten:
"@8.8.8.8" (fuehrendes @ ist sonst der Splatting-Operator)
-s server @-freie Alternative fuer den DNS-Server (auch -server)
-x <ip> Reverse-Lookup (PTR) fuer eine IPv4-/IPv6-Adresse
+short nur die reinen Antwortwerte ausgeben
.EXAMPLE
.\dig.ps1 example.com
.\dig.ps1 MX example.com
.\dig.ps1 example.com MX @1.1.1.1
.\dig.ps1 example.com MX -s 1.1.1.1
.\dig.ps1 example.com MX "@1.1.1.1"
.\dig.ps1 -x 8.8.8.8
.\dig.ps1 AAAA example.com +short
#>
@@ -57,6 +60,16 @@ for ($i = 0; $i -lt $rest.Count; $i++) {
continue
}
# -s / -server als @-freie Alternative (PowerShell deutet ein fuehrendes
# '@' sonst als Splatting-Operator und bricht schon beim Parsen ab).
if ($arg -eq '-s' -or $arg -eq '-server') {
if ($i + 1 -lt $rest.Count) {
$server = [string]$rest[$i + 1]
$i++
}
continue
}
if ($arg -eq '+short') {
$short = $true
continue
@@ -79,7 +92,7 @@ for ($i = 0; $i -lt $rest.Count; $i++) {
}
if (-not $name) {
Write-Host "Verwendung: dig.ps1 [type] name [@server] [+short] | dig.ps1 -x <ip> [+short]"
Write-Host "Verwendung: dig.ps1 [type] name [@server | -s server] [+short] | dig.ps1 -x <ip> [+short]"
exit 1
}