如何使用c#正确检查DNS条目是否存在

时间:2018-04-12 13:53:41

标签: c# dns

我有一个名字的计算机列表。我想查看网络上的计算机是否使用System.Net.PingSystem.Net.PingReply进行连接。计算机列表可能会不时变得陈旧。如果找不到主机,我会得到一个例外。有没有办法我可以检查是否有主机的记录没有经历异常?我以为我可以使用Dns.GetHostEntry(c.Name)但如果主机不在DNS中,这也会返回异常。

1 个答案:

答案 0 :(得分:1)

如果您无法使用try / catch,则可以使用SimpleDNS(Nuget),它只会在连接问题上抛出所选DNS服务器的异常。

"command": "ssh -t user@domain 'wget -qO- some.website | awk -F \"</*TD ALIGN=LEFT>|</*TD>|<*/A>\" \"/<TD ALIGN=LEFT>.*[A-Z]/ {print $12}\" | sed -n 1p'",

如果查询无效,则返回DNS数据包对象将为null:

enter image description here

而不是检查var dnsServer = IPAddress.Parse("8.8.8.8"); var result = Query.Simple(new SimpleDnsPacket(new Question("lalalalalaldasl.com", QType.A), dnsServer)); //Failing Query ,您可以查询在标题中找到的null属性:

Response