Add ZoneEdit Update.
This commit is contained in:
110
Program.cs
110
Program.cs
@@ -5,42 +5,51 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Configuration;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using System.Web;
|
||||
|
||||
namespace IPMonitor
|
||||
{
|
||||
class Program
|
||||
{
|
||||
//public static String GetPublicIPAddress()
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// String address = "";
|
||||
// WebRequest request = WebRequest.Create("http://checkip.dyndns.org/");
|
||||
// using (WebResponse response = request.GetResponse())
|
||||
// using (StreamReader stream = new StreamReader(response.GetResponseStream()))
|
||||
// {
|
||||
// address = stream.ReadToEnd();
|
||||
// }
|
||||
|
||||
// int first = address.IndexOf("Address: ") + 9;
|
||||
// int last = address.LastIndexOf("</body>");
|
||||
// address = address.Substring(first, last - first);
|
||||
|
||||
// return address;
|
||||
// }
|
||||
// catch(Exception exception)
|
||||
// {
|
||||
// String message = String.Format("[IPMonitor::GetPublicIPAddress] Exception:{0}",exception.ToString());
|
||||
// MDTrace.WriteLine(LogLevel.DEBUG,message);
|
||||
// SendSMSEmail("IPMonitor encountered an issue retrieving.");
|
||||
// return null;
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
// Main
|
||||
public static void UpdateIPAddress(String ipAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
String strPathFileName="ipaddress.txt";
|
||||
if(!File.Exists(strPathFileName))
|
||||
{
|
||||
WriteFile(strPathFileName, ipAddress);
|
||||
ZoneEditResponses zoneEditResponses=UpdateZoneEditRecord(ipAddress);
|
||||
SendSMSEmail(String.Format("IPMonitor IPAddress {0}. ZoneEditUpdated={1}",ipAddress,zoneEditResponses.IsSuccess()));
|
||||
}
|
||||
else
|
||||
{
|
||||
String currentIPAddress=ReadFile(strPathFileName);
|
||||
if(null!=currentIPAddress && !currentIPAddress.Equals(ipAddress))
|
||||
{
|
||||
WriteFile(strPathFileName,ipAddress);
|
||||
ZoneEditResponses zoneEditResponses=UpdateZoneEditRecord(ipAddress);
|
||||
SendSMSEmail(String.Format("IPMonitor IPAddress {0}. ZoneEditUpdated={1}",ipAddress,zoneEditResponses.IsSuccess()));
|
||||
}
|
||||
else if(null==currentIPAddress)
|
||||
{
|
||||
SendSMSEmail("IPMonitor "+ipAddress+ ". IPMonitor encountered an issue reading the IPAddress file.");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[IPMonitor::UpdateIPAddress] Exception:{0}",exception.ToString()));
|
||||
}
|
||||
}
|
||||
|
||||
public static String GetPublicIPAddress()
|
||||
{
|
||||
int MAX_RETRIES=5;
|
||||
@@ -92,34 +101,33 @@ namespace IPMonitor
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateIPAddress(String ipAddress)
|
||||
public static ZoneEditResponses UpdateZoneEditRecord(String ipAddress)
|
||||
{
|
||||
try
|
||||
HttpClient client = new HttpClient();
|
||||
|
||||
String user=ConfigurationManager.AppSettings["zoneedit_user"];
|
||||
String password=ConfigurationManager.AppSettings["zoneedit_password"];
|
||||
String host=ConfigurationManager.AppSettings["zoneedit_host"];
|
||||
|
||||
String strRequest=null;
|
||||
StringBuilder sb=new StringBuilder();
|
||||
HttpNetResponse httpNetResponse=null;
|
||||
|
||||
sb = new StringBuilder();
|
||||
sb.Append("https://");
|
||||
sb.Append("dynamic.zoneedit.com/auth/dynamic.html");
|
||||
sb.Append("?host=").Append(HttpUtility.UrlEncode(host));
|
||||
sb.Append("&dnsto=").Append(HttpUtility.UrlEncode(ipAddress));
|
||||
strRequest=sb.ToString();
|
||||
httpNetResponse = HttpNetRequest.GetRequestNoEncodingV5C(strRequest,user,password);
|
||||
|
||||
if(!httpNetResponse.Success)
|
||||
{
|
||||
String strPathFileName="ipaddress.txt";
|
||||
if(!File.Exists(strPathFileName))
|
||||
{
|
||||
WriteFile(strPathFileName, ipAddress);
|
||||
SendSMSEmail(String.Format("IPMonitor IPAddress {0}",ipAddress));
|
||||
}
|
||||
else
|
||||
{
|
||||
String currentIPAddress=ReadFile(strPathFileName);
|
||||
if(null!=currentIPAddress && !currentIPAddress.Equals(ipAddress))
|
||||
{
|
||||
WriteFile(strPathFileName,ipAddress);
|
||||
SendSMSEmail(String.Format("IPMonitor IPAddress {0}",ipAddress));
|
||||
}
|
||||
else if(null==currentIPAddress)
|
||||
{
|
||||
SendSMSEmail("IPMonitor "+ipAddress+ ". IPMonitor encountered an issue reading the IPAddress file.");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[IPMonitor::UpdateIPAddress] Exception:{0}",exception.ToString()));
|
||||
return new ZoneEditResponses();
|
||||
}
|
||||
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("{0}",httpNetResponse.ResponseString));
|
||||
return new ZoneEditResponses(httpNetResponse.ResponseString);
|
||||
}
|
||||
|
||||
public static void WriteFile(String strPathFileName,String ipAddress)
|
||||
|
||||
Reference in New Issue
Block a user