diff --git a/NetMonitorClient/ServiceControl.cs b/NetMonitorClient/ServiceControl.cs index 63bc897..2c106cc 100644 --- a/NetMonitorClient/ServiceControl.cs +++ b/NetMonitorClient/ServiceControl.cs @@ -24,104 +24,104 @@ namespace NetMonitorClient this.rep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 34523); } - internal void setNetworkAuto(string adapter) + internal bool setNetworkAuto(string adapter) { if (adapter == null) { System.Windows.Forms.MessageBox.Show("Adapter ist not Set!"); - return; + return false; } byte[] data = Encoding.UTF8.GetBytes("NET AUTO "+adapter); this.client.Send(data, data.Length, this.rep); } - internal void setNetworkIp(string ip, string subnet, string gateway, string adapter) + internal bool setNetworkIp(string ip, string subnet, string gateway, string adapter) { if (ip == null) { System.Windows.Forms.MessageBox.Show("IP address not Set!"); - return; + return false; } if (subnet == null) { System.Windows.Forms.MessageBox.Show("Subnet address not Set!"); - return; + return false; } if (gateway == null) { System.Windows.Forms.MessageBox.Show("Gateway address not Set!"); - return; + return false; } if (adapter == null) { System.Windows.Forms.MessageBox.Show("Adapter ist not Set!"); - return; + return false; } byte[] data = Encoding.UTF8.GetBytes("NET IP " + ip + " " + subnet + " " + gateway + " " + adapter); this.client.Send(data, data.Length, this.rep); } - internal void setNetworkDNS(string dns, string adapter) + internal bool setNetworkDNS(string dns, string adapter) { if (dns == null) { System.Windows.Forms.MessageBox.Show("DNS address not Set!"); - return; + return false; } if (adapter == null) { System.Windows.Forms.MessageBox.Show("Adapter ist not Set!"); - return; + return false; } byte[] data = Encoding.UTF8.GetBytes("NET DNS " + dns + " " + adapter); this.client.Send(data, data.Length, this.rep); } - internal void setNetworkWINS(string wins, string adapter) + internal bool setNetworkWINS(string wins, string adapter) { if (wins == null) { System.Windows.Forms.MessageBox.Show("WINS address not Set!"); - return; + return false; } if (adapter == null) { System.Windows.Forms.MessageBox.Show("Adapter ist not Set!"); - return; + return false; } byte[] data = Encoding.UTF8.GetBytes("NET WINS " + wins + " " + adapter); this.client.Send(data, data.Length, this.rep); } - internal void setNetworkIpAuto(string adapter) + internal bool setNetworkIpAuto(string adapter) { if (adapter == null) { System.Windows.Forms.MessageBox.Show("Adapter ist not Set!"); - return; + return false; } byte[] data = Encoding.UTF8.GetBytes("NET IP AUTO "+adapter); this.client.Send(data, data.Length, this.rep); } - internal void setNetworkDnsAuto(string adapter) + internal bool setNetworkDnsAuto(string adapter) { if (adapter == null) { System.Windows.Forms.MessageBox.Show("Adapter ist not Set!"); - return; + return false; } byte[] data = Encoding.UTF8.GetBytes("NET DNS AUTO " + adapter); this.client.Send(data, data.Length, this.rep); } - internal void setNetworkWinsAuto(string adapter) + internal bool setNetworkWinsAuto(string adapter) { if (adapter == null) { System.Windows.Forms.MessageBox.Show("Adapter ist not Set!"); - return; + return false; } byte[] data = Encoding.UTF8.GetBytes("NET WINS AUTO " + adapter); this.client.Send(data, data.Length, this.rep); diff --git a/NetMonitorServer/SetNetworks.cs b/NetMonitorServer/SetNetworks.cs index 2549e74..56cbee0 100644 --- a/NetMonitorServer/SetNetworks.cs +++ b/NetMonitorServer/SetNetworks.cs @@ -2,12 +2,17 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using System.Diagnostics; +using System.Diagnostics; +using System.Net; +using System.Net.Sockets; namespace NetMonitorServer { class SetNetworks { + UdpClient sendanswer = new UdpClient(); + IPEndPoint rep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 34524); + public SetNetworks(string data) { if (data.Substring(0, 8).ToLower() == "net auto") @@ -25,10 +30,13 @@ namespace NetMonitorServer String[] par = data.Split(' '); if (par.Length != 4) return; + bool ret; if (par[2].ToLower() == "auto") - this.runProgramNetsh("interface ipv4 set winsservers name=\"" + par[3] + "\" source=dhcp"); + ret = this.runProgramNetsh("interface ipv4 set winsservers name=\"" + par[3] + "\" source=dhcp"); else - this.runProgramNetsh("interface ipv4 set winsservers \"" + par[3] + "\" static " + par[2]); + ret = this.runProgramNetsh("interface ipv4 set winsservers \"" + par[3] + "\" static " + par[2]); + byte[] answ = Encoding.UTF8.GetBytes(ret.ToString()); + sendanswer.Send(answ, answ.Length, rep); } private void setNetworkDns(string data) @@ -36,10 +44,13 @@ namespace NetMonitorServer String[] par = data.Split(' '); if (par.Length != 4) return; + bool ret; if (par[2].ToLower() == "auto") - this.runProgramNetsh("interface ipv4 set dnsservers name=\"" + par[3] + "\" source=dhcp"); + ret = this.runProgramNetsh("interface ipv4 set dnsservers name=\"" + par[3] + "\" source=dhcp"); else - this.runProgramNetsh("interface ipv4 set dnsservers \"" + par[3] + "\" static " + par[2] + " primary"); + ret = this.runProgramNetsh("interface ipv4 set dnsservers \"" + par[3] + "\" static " + par[2] + " primary"); + byte[] answ = Encoding.UTF8.GetBytes(ret.ToString()); + sendanswer.Send(answ, answ.Length, rep); } private void setNetworkIp(string data) @@ -47,10 +58,13 @@ namespace NetMonitorServer String[] par = data.Split(' '); if (par.Length != 4 && par.Length != 6) return; + bool ret; if (par[2].ToLower() == "auto") - this.runProgramNetsh("interface ipv4 set address name=\"" + par[3] + "\" source=dhcp"); + ret = this.runProgramNetsh("interface ipv4 set address name=\"" + par[3] + "\" source=dhcp"); else - this.runProgramNetsh("interface ipv4 set address \"" + par[5] + "\" static " + par[2] + " " + par[3] + " " + par[4]); + ret = this.runProgramNetsh("interface ipv4 set address \"" + par[5] + "\" static " + par[2] + " " + par[3] + " " + par[4]); + byte[] answ = Encoding.UTF8.GetBytes(ret.ToString()); + sendanswer.Send(answ, answ.Length, rep); } private void setNetworkAuto(string data) @@ -58,12 +72,17 @@ namespace NetMonitorServer String[] par = data.Split(' '); if (par.Length != 3) return; - this.runProgramNetsh("interface ipv4 set address name=\""+par[2]+"\" source=dhcp"); - this.runProgramNetsh("interface ipv4 set dnsservers name=\"" + par[2] + "\" source=dhcp"); - this.runProgramNetsh("interface ipv4 set winsservers name=\"" + par[2] + "\" source=dhcp"); + byte[] answ; + if (this.runProgramNetsh("interface ipv4 set address name=\"" + par[2] + "\" source=dhcp") && + this.runProgramNetsh("interface ipv4 set dnsservers name=\"" + par[2] + "\" source=dhcp") && + this.runProgramNetsh("interface ipv4 set winsservers name=\"" + par[2] + "\" source=dhcp")) + answ = Encoding.UTF8.GetBytes(true.ToString()); + else + answ = Encoding.UTF8.GetBytes(false.ToString()); + sendanswer.Send(answ, answ.Length, rep); } - private void runProgramNetsh(string args) + private bool runProgramNetsh(string args) { Process p = new Process(); p.StartInfo.Arguments = args; @@ -75,6 +94,9 @@ namespace NetMonitorServer string output = p.StandardOutput.ReadToEnd(); p.WaitForExit(); Console.WriteLine(output.Trim()); + if (p.ExitCode == 0) + return true; + return false; } } }