using System; using System.Collections.Generic; using System.Linq; using System.Text; using BlubbFish.Utils; namespace NetMonitorUtils { public class NetworkSetter : OwnObject { private ServiceControl serviceController; private InIReader networkini; private enum netsetterType { Auto, IpAuto, Ip, DnsAuto, Dns, WinsAuto, Wins } public NetworkSetter(string networkfile, string configfile) { this.addLog("NetworkSetter", "networkfile: " + networkfile + "; configfile: " + configfile + ";", LogLevel.Debug); this.serviceController = ServiceControl.getInstance(configfile); this.networkini = InIReader.getInstance(networkfile); } public bool setNetwork(string networkName) { this.addLog("setNetwork", "Setze Netzwerkeinstellungen: " + networkName, LogLevel.Info); this.addLog("setNetwork", "networkName: " + networkName + ";", LogLevel.Debug); String name = networkini.getValue(networkName, "Name"); String ip = networkini.getValue(networkName, "Ip"); String subnet = networkini.getValue(networkName, "Subnet"); String gateway = networkini.getValue(networkName, "Gateway"); String dns = networkini.getValue(networkName, "Dns"); String wins = networkini.getValue(networkName, "Wins"); String adapter = networkini.getValue(networkName, "Adapter"); this.addLog("setNetwork", "name: " + name, LogLevel.Debug); this.addLog("setNetwork", "ip: " + ip, LogLevel.Debug); this.addLog("setNetwork", "subnet: " + subnet, LogLevel.Debug); this.addLog("setNetwork", "gateway: " + gateway, LogLevel.Debug); this.addLog("setNetwork", "dns: " + dns, LogLevel.Debug); this.addLog("setNetwork", "wins: " + wins, LogLevel.Debug); this.addLog("setNetwork", "adapter: " + adapter, LogLevel.Debug); bool ret = false; if (ip.ToLower() == "auto" && dns.ToLower() == "auto" && wins.ToLower() == "auto") { ret = setNetworkAuto(adapter, name); this.addLog("setNetwork.setNetworkAuto", "return " + ret, LogLevel.Debug); } else { if (ip.ToLower() == "auto") { ret = setNetworkIpAuto(adapter, name); this.addLog("setNetwork.setNetworkIpAuto", "return " + ret, LogLevel.Debug); } else { ret = setNetworkIp(ip, subnet, gateway, adapter, name); this.addLog("setNetwork.setNetworkIp", "return " + ret, LogLevel.Debug); } if (dns.ToLower() == "auto") { ret = setNetworkDnsAuto(adapter, name); this.addLog("setNetwork.setNetworkDnsAuto", "return " + ret, LogLevel.Debug); } else { ret = setNetworkDns(dns, adapter, name); this.addLog("setNetwork.setNetworkDns", "return " + ret, LogLevel.Debug); } if (wins.ToLower() == "auto") { ret = setNetworkWinsAuto(adapter, name); this.addLog("setNetwork.setNetworkWinsAuto", "return " + ret, LogLevel.Debug); } else { ret = setNetworkWins(wins, adapter, name); this.addLog("setNetwork.setNetworkWins", "return " + ret, LogLevel.Debug); } } this.addLog("setNetwork", "return " + ret, LogLevel.Debug); return ret; } public bool setNetworkAuto(string adapter, string name) { this.addLog("setNetworkAuto", "Setze Netzwerkeinstellungen von " + adapter + " auf Automatisch", LogLevel.Info); this.addLog("setNetworkAuto", "datapter: " + adapter + "; name: " + name + ";", LogLevel.Debug); return setNetwork(netsetterType.Auto, null, null, null, adapter, name, null, null); } public bool setNetworkIpAuto(string adapter, string name) { this.addLog("setNetworkIpAuto", "Setze Netzwerkeinstellungen von " + adapter + " auf IP Automatisch", LogLevel.Info); this.addLog("setNetworkIpAuto", "adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug); return setNetwork(netsetterType.IpAuto, null, null, null, adapter, name, null, null); } public bool setNetworkIp(string ip, string subnet, string gateway, string adapter, string name) { this.addLog("setNetworkIp", "Setze Netzwerkeinstellungen von " + adapter + " auf IP " + ip + "/" + subnet + " GW " + gateway, LogLevel.Info); this.addLog("setNetworkIp", "ip: " + ip + "; subnet: " + subnet + "; gateway: " + gateway + "; adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug); return setNetwork(netsetterType.Ip, ip, subnet, gateway, adapter, name, null, null); } public bool setNetworkDnsAuto(string adapter, string name) { this.addLog("setNetworkDnsAuto", "Setze Netzwerkeinstellungen von " + adapter + " auf Dns Automatisch", LogLevel.Info); this.addLog("setNetworkDnsAuto", "adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug); return setNetwork(netsetterType.DnsAuto, null, null, null, adapter, name, null, null); } public bool setNetworkDns(string dns, string adapter, string name) { this.addLog("setNetworkDns", "Setze Netzwerkeinstellungen von " + adapter + " auf Dns " + dns, LogLevel.Info); this.addLog("setNetworkDns", "dns: " + dns + "; adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug); return setNetwork(netsetterType.Dns, null, null, null, adapter, name, dns, null); } public bool setNetworkWinsAuto(string adapter, string name) { this.addLog("setNetworkWinsAuto", "Setze Netzwerkeinstellungen von " + adapter + " auf Wins Automatisch", LogLevel.Info); this.addLog("setNetworkWinsAuto", "adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug); return setNetwork(netsetterType.WinsAuto, null, null, null, adapter, name, null, null); } public bool setNetworkWins(string wins, string adapter, string name) { this.addLog("setNetworkWins", "Setze Netzwerkeinstellungen von " + adapter + " auf Wins " + wins, LogLevel.Info); this.addLog("setNetworkWins", "wins: " + wins + "; adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug); return setNetwork(netsetterType.Wins, null, null, null, adapter, name, null, wins); } private bool setNetwork(netsetterType option, string ip, string subnet, string gateway, string adapter, string name, string dns, string wins) { this.addLog("setNetwork", "option: " + option + "; ip: " + ip + "; subnet: " + subnet + "; gateway: " + gateway + "; adapter: " + adapter + "; name: " + name + "; dns: " + dns + "; wins: " + wins + ";", LogLevel.Debug); bool status = false; try { if (option == netsetterType.Ip) { this.addLog("ServiceController.NetworkSetIp", "ip: "+ip+"; subnet: "+subnet+"; gateway: "+gateway+"; adapter: "+adapter+";", LogLevel.Debug); status = this.serviceController.NetworkSetIp(ip, subnet, gateway, adapter); } if (option == netsetterType.Auto) { this.addLog("ServiceController.NetworkSetAuto", "adapter: "+adapter+";", LogLevel.Debug); status = this.serviceController.NetworkSetAuto(adapter); } if (option == netsetterType.IpAuto) { this.addLog("ServiceController.NetworkSetIpAuto", "adapter: "+adapter+";", LogLevel.Debug); status = this.serviceController.NetworkSetIpAuto(adapter); } if (option == netsetterType.DnsAuto) { this.addLog("ServiceController.NetworkSetDnsAuto", "adapter: "+adapter+";", LogLevel.Debug); status = this.serviceController.NetworkSetDnsAuto(adapter); } if (option == netsetterType.WinsAuto) { this.addLog("ServiceController.NetworkSetWinsAuto", "adapter: "+adapter+";", LogLevel.Debug); status = this.serviceController.NetworkSetWinsAuto(adapter); } if (option == netsetterType.Dns) { this.addLog("ServiceController.NetworkSetDNS", "dns: "+dns+"; adapter: "+adapter+";", LogLevel.Debug); status = this.serviceController.NetworkSetDNS(dns, adapter); } if (option == netsetterType.Wins) { this.addLog("ServiceController.NetworkSetWINS", "wins: "+wins+"; adapter: "+adapter+";", LogLevel.Debug); status = this.serviceController.NetworkSetWINS(wins, adapter); } } catch (Exception e) { this.addLog("setNetwork", "Fehler beim Ausführen des Befehls: " + e.Message, LogLevel.Error); throw e; } return status; } } }