diff --git a/TShockAPI/Tools.cs b/TShockAPI/Tools.cs index f4aeaf8e..9d8f4286 100755 --- a/TShockAPI/Tools.cs +++ b/TShockAPI/Tools.cs @@ -19,6 +19,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Text; +using System.Net; using Microsoft.Xna.Framework; using Terraria; @@ -555,13 +556,35 @@ namespace TShockAPI { continue; } - if (args[0].Equals(ip)) + try { - return GetGroup(args[1]); + var hi = GetIPv4Address(args[0]); + if (GetIPv4Address(args[0]).Equals(ip)) + return GetGroup(args[1]); } + catch (Exception ex) + { Log.Error(ex.ToString()); } } sr.Close(); return GetGroup("default"); } + + /// + /// Returns an IPv4 address from a DNS query + /// + /// string ip + public static string GetIPv4Address(string hostname) + { + string IP4Address = String.Empty; + foreach (IPAddress IPA in Dns.GetHostAddresses(hostname)) + { + if (IPA.AddressFamily.ToString() == "InterNetwork") + { + IP4Address = IPA.ToString(); + break; + } + } + return IP4Address; + } } } \ No newline at end of file