ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/HostUpdateSharp/HostUpdateSharp.cs
Revision: 93
Committed: 2004-03-01T23:37:27-08:00 (21 years, 3 months ago) by Douglas Thrift
File size: 2482 byte(s)
Log Message:
Let's try this!

File Contents

# User Rev Content
1 Douglas Thrift 77 // Host Update Sharp
2     //
3     // Douglas Thrift
4     //
5     // $Id$
6    
7     using System;
8     using System.IO;
9     using System.Net;
10 Douglas Thrift 82 using System.Text;
11 Douglas Thrift 77
12 Douglas Thrift 78 public class HostUpdateSharp
13 Douglas Thrift 77 {
14 Douglas Thrift 78 public static void Main(string[] args)
15 Douglas Thrift 77 {
16 Douglas Thrift 90 try
17     {
18     new HostUpdateSharp();
19     }
20     catch (Exception exception) { Console.Error.WriteLine(exception); }
21     }
22     public HostUpdateSharp()
23     {
24 Douglas Thrift 83 StringBuilder host = new StringBuilder("host=" + Dns.GetHostName());
25 Douglas Thrift 78 string url = "http://topsecret.douglasthrift.net/auth/hostupdate.cgi";
26    
27 Douglas Thrift 88 if ((host + "").IndexOf('.') < 0)
28 Douglas Thrift 82 {
29     host.Append(".local.douglasthrift.net");
30     }
31    
32 Douglas Thrift 93 CredentialCache cache = new CredentialCache();
33    
34     cache.Add(new Uri(url), "Basic", new NetworkCredential("HostUpdate",
35     "frell2003"));
36    
37 Douglas Thrift 82 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
38    
39     request.Accept = "text/plain";
40 Douglas Thrift 83 request.ContentLength = host.Length;
41 Douglas Thrift 82 request.ContentType = "application/x-www-form-urlencoded";
42 Douglas Thrift 93 request.Credentials = cache;
43 Douglas Thrift 83 request.KeepAlive = false;
44 Douglas Thrift 82 request.Method = "POST";
45 Douglas Thrift 83 request.PreAuthenticate = true;
46 Douglas Thrift 88 request.UserAgent = "Host Update Sharp/1.0 (" + platform() + ')';
47    
48     StreamWriter post = new StreamWriter(request.GetRequestStream(),
49     Encoding.ASCII);
50    
51     post.Write(host);
52     post.Close();
53    
54     HttpWebResponse response = (HttpWebResponse)request.GetResponse();
55    
56     StreamReader content = new StreamReader(response.GetResponseStream(),
57     Encoding.ASCII);
58    
59     Console.Write(content.ReadToEnd());
60 Douglas Thrift 90 content.Close();
61 Douglas Thrift 77 }
62 Douglas Thrift 88 #if _FreeBSD_
63 Douglas Thrift 90 private string platform() { return "FreeBSD 4.9-STABLE i386"; }
64 Douglas Thrift 88 #else
65 Douglas Thrift 90 private string platform()
66 Douglas Thrift 88 {
67     OperatingSystem os = Environment.OSVersion;
68     string system = "Unknown";
69    
70     switch (os.Platform)
71     {
72     case PlatformID.Win32NT:
73     system = "Windows NT";
74     break;
75     case PlatformID.Win32Windows:
76     system = "Windows";
77     break;
78     }
79    
80     int major = os.Version.Major, minor = os.Version.Minor;
81     string version = os + "";
82    
83     switch (system)
84     {
85     case "Windows NT":
86     switch (major)
87     {
88     case 5:
89     switch (minor)
90     {
91     case 0:
92     version = "Windows 2000";
93     break;
94     case 1:
95     version = "Windows XP";
96     break;
97     case 2:
98     version = "Windows .NET Server";
99     break;
100     }
101     break;
102     }
103     break;
104     case "Windows":
105     if (major == 4)
106     {
107     switch (minor)
108     {
109     case 10:
110     version = " Windows 98";
111     break;
112     case 90:
113     version = " Windows ME";
114     break;
115     }
116     }
117     break;
118     }
119    
120     return system + ' ' + major + '.' + minor + " [" + version + "] ix86";
121     }
122     #endif
123 Douglas Thrift 77 }

Properties

Name Value
svn:eol-style native
svn:keywords Id