Compare commits

...

2 Commits

Author SHA1 Message Date
cf9f9f7db7 nu: Fix ipv6 dns lookups 2025-09-03 12:57:15 +02:00
18a93fe079 nu: Add --server argument to dns command 2025-09-03 12:57:15 +02:00

View File

@ -47,17 +47,16 @@ def "m daemon is-running" [
}
def dns [
--server (-s): string,
name: string,
] {
nslookup $name |
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 }
}
}
# HACK: turn the optional argument into a list. not sure how to pass it to nslookup otherwise.
let server = ([$server] | compact)
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
}