From 11efebd29ee264402117f0a98b460b7aff23d369 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Wed, 18 Jul 2007 21:55:24 +0000 Subject: * Added "GetHostFromDNS" to Util to replace the various DNS resolution methods we use. Favours IPv4 addresses before IPv6 addresses to work around the Vista preference issue. --- OpenSim/Framework/General/Util.cs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'OpenSim/Framework/General/Util.cs') diff --git a/OpenSim/Framework/General/Util.cs b/OpenSim/Framework/General/Util.cs index 3333ced..97fe7da 100644 --- a/OpenSim/Framework/General/Util.cs +++ b/OpenSim/Framework/General/Util.cs @@ -27,6 +27,7 @@ */ using System; using System.Security.Cryptography; +using System.Net; using System.Text; using libsecondlife; @@ -176,6 +177,30 @@ namespace OpenSim.Framework.Utilities return output.ToString(); } + + /// + /// Returns a IP address from a specified DNS, favouring IPv4 addresses. + /// + /// DNS Hostname + /// An IP address, or null + public static IPAddress GetHostFromDNS(string dnsAddress) + { + IPAddress[] hosts = Dns.GetHostEntry(dnsAddress).AddressList; + + foreach (IPAddress host in hosts) + { + if (host.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) + { + return host; + } + } + + if (hosts.Length > 0) + return hosts[0]; + + return null; + } + public Util() { -- cgit v1.1