我正在尝试将注册表项与多宿主服务器上的DNS匹配。问题是system.net.dns似乎比DNS中的内容更多。
示例:
nslookup hostname.dns.net
Server DNS.server.naem
Address: IP.Address.of.server
Name: hostname.dns.net
Address: single.ip.of.server
但是当我使用时:
$DNSResult = [System.Net.Dns]::GetHostEntry($Computer)
$DNSresult.addresslist
它输出2个服务器IP地址,已发布的一个和未发布的一个....
如何才能获得DNS发布的结果。
答案 0 :(得分:0)
重新Net.IPAddress]$dnsip=dnsLookup $computername $dnsip
错误。我添加了一个换行字符清理,它隐藏在输出的末尾并阻止了正确的解析。 nslookup的输出被分解为字符串数组。使用$i = 4
,您开始处理第5行的输出,即第一个返回的地址所在的输出。 $r.count - 2
停止处理最后一行,即空字符串。
function dnsLookup($hostname){
$r = (nslookup $hostname | Out-String).split("`n")
for($i = 4; $i -lt ($r.count - 2); $i++){
$r[$i] -replace ("Address: |Addresses: | |`t|`r|Server"),""
}
}
现在Net.IPAddress]$dnsip=dnsLookup $computername
可以使用。