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:
@@ -9,12 +9,30 @@ Intern wird `Resolve-DnsName` verwendet.
|
||||
.\dig.ps1 example.com # A-Record (Default)
|
||||
.\dig.ps1 MX example.com # type name
|
||||
.\dig.ps1 example.com MX # name type (Reihenfolge egal)
|
||||
.\dig.ps1 example.com AAAA @1.1.1.1 # gegen bestimmten Server
|
||||
.\dig.ps1 example.com MX -s 1.1.1.1 # gegen bestimmten Server (@-frei)
|
||||
.\dig.ps1 example.com MX "@1.1.1.1" # gegen bestimmten Server (@ gequotet)
|
||||
.\dig.ps1 -x 8.8.8.8 # Reverse-Lookup (PTR)
|
||||
.\dig.ps1 example.com TXT +short # nur die Werte ausgeben
|
||||
```
|
||||
|
||||
Unterstützt: Record-`type`, `name`, `@server`, die Option `+short` sowie `-x` für Reverse-Lookups.
|
||||
Unterstützt: Record-`type`, `name`, `@server` bzw. `-s server`, die Option `+short` sowie `-x` für Reverse-Lookups.
|
||||
|
||||
### DNS-Server angeben: `@server` muss gequotet werden
|
||||
|
||||
PowerShell deutet ein Argument mit führendem `@` als **Splatting-Operator** und bricht
|
||||
schon beim Parsen ab (`Der Splat-Operator "@" kann nicht … verwendet werden`), bevor das
|
||||
Skript überhaupt startet. Für die `@server`-Syntax daher **Anführungszeichen** verwenden:
|
||||
|
||||
```powershell
|
||||
.\dig.ps1 example.com MX "@8.8.8.8"
|
||||
```
|
||||
|
||||
Oder die `@`-freie Alternative `-s` / `-server` nutzen:
|
||||
|
||||
```powershell
|
||||
.\dig.ps1 example.com MX -s 8.8.8.8
|
||||
.\dig.ps1 example.com MX -server 8.8.8.8
|
||||
```
|
||||
|
||||
## `dig`-Funktion anlegen
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user