nu: Fix ipv6 dns lookups

This commit is contained in:
2025-09-03 12:57:00 +02:00
parent 18a93fe079
commit cf9f9f7db7

View File

@ -53,17 +53,10 @@ def dns [
# HACK: turn the optional argument into a list. not sure how to pass it to nslookup otherwise.
let server = ([$server] | compact)
nslookup $name ...$server |
lines |
skip until { |line| $line =~ answer } |
parse -r "Address:\\s(?<ipv4>\\d+\\.\\d+\\.\\d+\\.\\d+)|Address:\\s(?<ipv6>[\\d:a-z]+)" |
each { |row|
if $row.ipv4 != "" {
{ kind: ipv4, addr: $row.ipv4 }
} else {
{ kind: ipv6, addr: $row.ipv6 }
}
}
let ipv4 = (dig $name A | lines | skip until {|l| $l =~ "ANSWER SECTION" } | skip 1 | take until { |l| $l == "" } | split column "\t" -c | rename host ttl _ type addr) | reject _
let ipv6 = (dig $name AAAA | lines | skip until {|l| $l =~ "ANSWER SECTION" } | skip 1 | take until { |l| $l == "" } | split column "\t" -c | rename host ttl _ type addr) | reject _
$ipv4 | append $ipv6
}