/// <summary>
/// Tries to get a valid IP address
/// </summary>
/// <param
name="address"></param>
/// <returns>Returns false if an address is local or invalid</returns>
public static bool TryGetValidPublicIpAddress(string ip, out IPAddress address)
{
//bail
out if input was not supplied
if (string.IsNullOrEmpty(ip))
{
address = null;
return false;
}
//ensure
that string is a valid IP address
IPAddress
validAddress;
if (!IPAddress.TryParse(ip, out validAddress))
{
address = null;
return false;
}
//ensure
that address is public, otherwise will throw an exception for local IP
addresses
string
localIpReges = Sitecore.Configuration.Settings.GetSetting(LocalIpRegex, DefaultLocalIpRegex);
if (Regex.IsMatch(ip, localIpReges))
{
address = null;
return false;
}
address = validAddress;
return true;
}
No comments:
Post a Comment