Add ZoneEdit Update.

This commit is contained in:
2024-03-17 11:23:28 -04:00
parent 5dfe2842ff
commit 6ac738e5f3
17 changed files with 82 additions and 57 deletions

View File

@@ -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)