netmonitor/NetMonitorUtils/NetworkSetter.cs

183 lines
9.7 KiB
C#
Raw Normal View History

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;
}
}
}