183 lines
9.7 KiB
C#
183 lines
9.7 KiB
C#
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|