public string GetPublicIpAddressFromDynDns()
{
string uri = "http://checkip.dyndns.org/";
string responseBody = string.Empty;
try
{
WebRequest request = WebRequest.Create(uri);
using (WebResponse response = request.GetResponse())
{
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
{
responseBody = stream.ReadToEnd();
}
}
}
catch (Exception)
{
//TODO: Log Exception
}
var options = RegexOptions.IgnoreCase | RegexOptions.Compiled;
var regex = new Regex(@"<body>Current IP Address:\s?(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\s?</body>",options);
var match = regex.Match(responseBody);
if(match.Success && match.Groups.Count > 1)
{
return match.Groups[1].Value;
}
return null;
}