/// <summary>
/// Gets specified host IP addresses(A and AAAA).
/// </summary>
/// <param name="host">Host name.</param>
/// <returns>Returns specified host IP addresses.</returns>
/// <exception cref="ArgumentNullException">Is raised when <b>host</b> is null reference.</exception>
public IPAddress[] GetHostAddresses(string host)
{
if (host == null)
{
throw new ArgumentNullException("host");
}
List <IPAddress> retVal = new List <IPAddress>();
// This is probably NetBios name
if (host.IndexOf(".") == -1)
{
return(System.Net.Dns.GetHostEntry(host).AddressList);
}
else
{
DnsServerResponse response = Query(host, QTYPE.A);
if (response.ResponseCode != RCODE.NO_ERROR)
{
throw new DNS_ClientException(response.ResponseCode);
}
foreach (DNS_rr_A record in response.GetARecords())
{
retVal.Add(record.IP);
}
response = Query(host, QTYPE.AAAA);
if (response.ResponseCode != RCODE.NO_ERROR)
{
throw new DNS_ClientException(response.ResponseCode);
}
foreach (DNS_rr_AAAA record in response.GetAAAARecords())
{
retVal.Add(record.IP);
}
}
return(retVal.ToArray());
}