// Host Update Sharp // // Douglas Thrift // // $Id$ using System; using System.IO; using System.Net; using System.Text; public class HostUpdateSharp { public static void Main(string[] args) { try { new HostUpdateSharp(); } catch (Exception exception) { Console.Error.WriteLine(exception); } } public HostUpdateSharp() { StringBuilder host = new StringBuilder("host=" + Dns.GetHostName()); string url = "http://topsecret.douglasthrift.net/auth/hostupdate.cgi"; if ((host + "").IndexOf('.') < 0) { host.Append(".local.douglasthrift.net"); } WebHeaderCollection headers = new WebHeaderCollection(); headers.Add("Authorization", "Basic " + Convert.ToBase64String((new ASCIIEncoding()).GetBytes("HostUpdate:frell2003"))); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Accept = "text/plain"; request.ContentLength = host.Length; request.ContentType = "application/x-www-form-urlencoded"; request.Headers = headers; request.KeepAlive = false; request.Method = "POST"; request.UserAgent = "Host Update Sharp/1.0 (" + platform() + ')'; StreamWriter post = new StreamWriter(request.GetRequestStream(), Encoding.ASCII); post.Write(host); post.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader content = new StreamReader(response.GetResponseStream(), Encoding.ASCII); Console.Write(content.ReadToEnd()); content.Close(); } #if _FreeBSD_ private string platform() { return "FreeBSD 4.9-STABLE i386"; } #else private string platform() { OperatingSystem os = Environment.OSVersion; string system = "Unknown"; switch (os.Platform) { case PlatformID.Win32NT: system = "Windows NT"; break; case PlatformID.Win32Windows: system = "Windows"; break; } int major = os.Version.Major, minor = os.Version.Minor; string version = os + ""; switch (system) { case "Windows NT": switch (major) { case 5: switch (minor) { case 0: version = "Windows 2000"; break; case 1: version = "Windows XP"; break; case 2: version = "Windows .NET Server"; break; } break; } break; case "Windows": if (major == 4) { switch (minor) { case 10: version = " Windows 98"; break; case 90: version = " Windows ME"; break; } } break; } return system + ' ' + major + '.' + minor + " [" + version + "] ix86"; } #endif }