static string GET(String getString) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(getString); request.Method = "GET"; String test = String.Empty; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { Stream dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); test = reader.ReadToEnd(); reader.Close(); dataStream.Close(); } return test; }
string ip = GET("http://ipv4.internet.yandex.net/internet/api/v0/ip").Trim('"'); string respons = GET("https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=" + token + "&domain=" + domain + " &subdomain=" + subdomain + "&record_id=" + id + "&content=" + ip);
using System; using System.ServiceProcess; using System.IO; using System.Net; using System.Timers; namespace DDNSyapi { public partial class Service1 : ServiceBase { String outIp = ""; Timer timer1; public const string token = "YOURTOKEN"; public const string domain = "YOURDOMAIN"; public const string subdomain ="UPDATINGSUBDOMAIN"; public const string id = "id"; //take token on pddimp.yandex.ru/get_token.xml?domain_name=YOURDOMAIN //take id on pddimp.yandex.ru/nsapi/get_domain_records.xml?token=YOURTOKEN&domain=YOURDOMAIN public Service1() { InitializeComponent(); } public static void Logs(string err) { StreamWriter txtIst = new StreamWriter(System.IO.Path.GetDirectoryName( System.Environment.GetCommandLineArgs()[0]) + "//IpServerLog_" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + ".txt", true); txtIst.WriteLine(DateTime.Now.ToString("HH:mm:ss") + " : " + err); txtIst.Close(); } protected override void OnStart(string[] args) { timer1 = new System.Timers.Timer(30 * 60 * 1000); timer1.Elapsed += timer1_Tick; timer1.Start(); timer1.Enabled = true; Logs(" "); } private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; try { string ip = GET("http://ipv4.internet.yandex.net/internet/api/v0/ip").Trim('"'); if (!ip.Equals(outIp)) { outIp = ip; string respons = GET("https://pddimp.yandex.ru/nsapi/edit_a_record.xml?token=" + token + "&domain=" + domain + " &subdomain=" + subdomain + "&record_id=" + id + "&content=" + ip); Logs(respons); } } catch { Logs(" .."); } timer1.Enabled = true; } static string GET(String getString) { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(getString); request.Method = "GET"; String test = String.Empty; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { Stream dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); test = reader.ReadToEnd(); reader.Close(); dataStream.Close(); } return test; } protected override void OnStop() { timer1.Enabled = false; timer1.Stop(); timer1 = null; Logs(DateTime.Now.ToString("HH:mm:ss") + " - " + " "); } } }
Source: https://habr.com/ru/post/310534/
All Articles