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