我希望能够监控 DNS 地址的变化。因此,我需要跟踪 DNS 变化。我目前正在使用线程来完成这项工作。我获取 DNS 然后将其保存到文件中,然后每 10 秒比较它们,但我需要更具体的解决方案。例如,是否有任何事件可以触发这个过程?以下是代码:
GetDns:
public List<string> GetDns()
{
List<string> dns = new List<string>();
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterface in networkInterfaces)
{
if (networkInterface.OperationalStatus == OperationalStatus.Up)
{
IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();
IPAddressCollection dnsAddresses = ipProperties.DnsAddresses;
foreach (IPAddress dnsAdress in dnsAddresses)
{
dns.Add(dnsAdress.ToString());
}
}
}
return dns;
}
这是比较的结果:
string[] xmlDns = xmlData.GetDatas("DNSs", "Dns");
List<string> dns = getData.GetDns();
for (int i = 0; i < xmlDns.Length; i++)
{
if ( xmlDns[i].Equals( dns[i]))
{
this.Invoke(new MethodInvoker(delegate()
{
listBoxCheck.Items.Add(xmlDns[i] + " DNS was not changed.");
}));
}
else
{
this.Invoke(new MethodInvoker(delegate()
{
listBoxCheck.Items.Add(xmlDns[i] + " DNS adress was changed as " + dns[i] );
}));
}
}