private IPHostEntry MakeEntry(string HostName, int timeout)
{
IPHostEntry entry = new IPHostEntry();
entry.HostName = HostName;
DNSResponse response = Query(HostName, DNSQType.A, QClass.IN, timeout);
// fill AddressList and aliases
List<IPAddress> AddressList = new List<IPAddress>();
List<string> Aliases = new List<string>();
foreach (AnswerRR answerRR in response.Answers)
{
if (answerRR.Type == DNSType.A)
{
// answerRR.RECORD.ToString() == (answerRR.RECORD as RecordA).Address
AddressList.Add(IPAddress.Parse((answerRR.RECORD.ToString())));
entry.HostName = answerRR.NAME;
}
else
{
if (answerRR.Type == DNSType.CNAME)
Aliases.Add(answerRR.NAME);
}
}
entry.AddressList = AddressList.ToArray();
entry.Aliases = Aliases.ToArray();
return entry;
}