2014-07-11 16:38:10 +02:00
|
|
|
|
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)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "Setze Netzwerkeinstellungen: " + networkName, LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "networkName: " + networkName + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
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");
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "name: " + name, LogLevel.Debug);
|
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "ip: " + ip, LogLevel.Debug);
|
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "subnet: " + subnet, LogLevel.Debug);
|
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "gateway: " + gateway, LogLevel.Debug);
|
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "dns: " + dns, LogLevel.Debug);
|
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "wins: " + wins, LogLevel.Debug);
|
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "adapter: " + adapter, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
bool ret = false;
|
|
|
|
|
if (ip.ToLower() == "auto" && dns.ToLower() == "auto" && wins.ToLower() == "auto")
|
|
|
|
|
{
|
|
|
|
|
ret = setNetworkAuto(adapter, name);
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork.setNetworkAuto", "return " + ret, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (ip.ToLower() == "auto")
|
|
|
|
|
{
|
|
|
|
|
ret = setNetworkIpAuto(adapter, name);
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork.setNetworkIpAuto", "return " + ret, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ret = setNetworkIp(ip, subnet, gateway, adapter, name);
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork.setNetworkIp", "return " + ret, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
}
|
|
|
|
|
if (dns.ToLower() == "auto")
|
|
|
|
|
{
|
|
|
|
|
ret = setNetworkDnsAuto(adapter, name);
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork.setNetworkDnsAuto", "return " + ret, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ret = setNetworkDns(dns, adapter, name);
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork.setNetworkDns", "return " + ret, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
}
|
|
|
|
|
if (wins.ToLower() == "auto")
|
|
|
|
|
{
|
|
|
|
|
ret = setNetworkWinsAuto(adapter, name);
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork.setNetworkWinsAuto", "return " + ret, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ret = setNetworkWins(wins, adapter, name);
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork.setNetworkWins", "return " + ret, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "return " + ret, LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
public bool setNetworkAuto(string adapter, string name)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetworkAuto", "Setze Netzwerkeinstellungen von " + adapter + " auf Automatisch", LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.setNetworkAuto", "datapter: " + adapter + "; name: " + name + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
return setNetwork(netsetterType.Auto, null, null, null, adapter, name, null, null);
|
|
|
|
|
}
|
|
|
|
|
public bool setNetworkIpAuto(string adapter, string name)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetworkIpAuto", "Setze Netzwerkeinstellungen von " + adapter + " auf IP Automatisch", LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.setNetworkIpAuto", "adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
return setNetwork(netsetterType.IpAuto, null, null, null, adapter, name, null, null);
|
|
|
|
|
}
|
|
|
|
|
public bool setNetworkIp(string ip, string subnet, string gateway, string adapter, string name)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetworkIp", "Setze Netzwerkeinstellungen von " + adapter + " auf IP " + ip + "/" + subnet + " GW " + gateway, LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.setNetworkIp", "ip: " + ip + "; subnet: " + subnet + "; gateway: " + gateway + "; adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
return setNetwork(netsetterType.Ip, ip, subnet, gateway, adapter, name, null, null);
|
|
|
|
|
}
|
|
|
|
|
public bool setNetworkDnsAuto(string adapter, string name)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetworkDnsAuto", "Setze Netzwerkeinstellungen von " + adapter + " auf Dns Automatisch", LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.setNetworkDnsAuto", "adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
return setNetwork(netsetterType.DnsAuto, null, null, null, adapter, name, null, null);
|
|
|
|
|
}
|
|
|
|
|
public bool setNetworkDns(string dns, string adapter, string name)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetworkDns", "Setze Netzwerkeinstellungen von " + adapter + " auf Dns " + dns, LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.setNetworkDns", "dns: " + dns + "; adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
return setNetwork(netsetterType.Dns, null, null, null, adapter, name, dns, null);
|
|
|
|
|
}
|
|
|
|
|
public bool setNetworkWinsAuto(string adapter, string name)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetworkWinsAuto", "Setze Netzwerkeinstellungen von " + adapter + " auf Wins Automatisch", LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.setNetworkWinsAuto", "adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
return setNetwork(netsetterType.WinsAuto, null, null, null, adapter, name, null, null);
|
|
|
|
|
}
|
|
|
|
|
public bool setNetworkWins(string wins, string adapter, string name)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetworkWins", "Setze Netzwerkeinstellungen von " + adapter + " auf Wins " + wins, LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.setNetworkWins", "wins: " + wins + "; adapter: " + adapter + "; name: " + name + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
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)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "option: " + option + "; ip: " + ip + "; subnet: " + subnet + "; gateway: " + gateway + "; adapter: " + adapter + "; name: " + name + "; dns: " + dns + "; wins: " + wins + ";", LogLevel.Debug);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
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)
|
|
|
|
|
{
|
2015-03-04 23:21:34 +01:00
|
|
|
|
this.addLog("NetworkSetter.setNetwork", "Fehler beim Ausführen des Befehls: " + e.Message, LogLevel.Error);
|
2014-07-11 16:38:10 +02:00
|
|
|
|
throw e;
|
|
|
|
|
}
|
|
|
|
|
return status;
|
|
|
|
|
}
|
2015-03-04 23:21:34 +01:00
|
|
|
|
|
|
|
|
|
public Dictionary<String, String> getNetwork(List<string> adapters)
|
|
|
|
|
{
|
|
|
|
|
this.addLog("NetworkSetter.getNetwork", "Hole Netzwerkeinstellungen für alle Adapter", LogLevel.Info);
|
|
|
|
|
this.addLog("NetworkSetter.getNetwork", "adapter: "+adapters+";", LogLevel.Debug);
|
|
|
|
|
Dictionary<String, String> ret = new Dictionary<String, String>();
|
|
|
|
|
foreach (string adapter in adapters)
|
|
|
|
|
{
|
|
|
|
|
String data = this.serviceController.NetworkGetName(adapter);
|
|
|
|
|
if (data == "unknown")
|
|
|
|
|
{
|
|
|
|
|
ret.Add(adapter, "unknown");
|
|
|
|
|
}
|
|
|
|
|
else if (data == "disconnected")
|
|
|
|
|
{
|
|
|
|
|
ret.Add(adapter, "disconnected");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
string[] values = data.Substring(0, data.Length - 1).Substring(1).Split('|');
|
|
|
|
|
List<string> networks = this.networkini.getSections();
|
|
|
|
|
string selected_network = "";
|
|
|
|
|
foreach (string network in networks)
|
|
|
|
|
{
|
|
|
|
|
if (networkini.getValue(network, "Ip") == values[0])
|
|
|
|
|
{
|
|
|
|
|
selected_network = network;
|
|
|
|
|
}
|
|
|
|
|
if (networkini.getValue(network, "Subnet") == values[1] || (values[1] == "" && networkini.getValue(network, "Subnet") == null))
|
|
|
|
|
{
|
|
|
|
|
if (selected_network != network)
|
|
|
|
|
{
|
|
|
|
|
selected_network = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (networkini.getValue(network, "Gateway") == values[2] || (values[2] == "" && networkini.getValue(network, "Gateway") == null))
|
|
|
|
|
{
|
|
|
|
|
if (selected_network != network)
|
|
|
|
|
{
|
|
|
|
|
selected_network = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (networkini.getValue(network, "Dns") == values[3])
|
|
|
|
|
{
|
|
|
|
|
if (selected_network != network)
|
|
|
|
|
{
|
|
|
|
|
selected_network = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (networkini.getValue(network, "Wins") == values[4])
|
|
|
|
|
{
|
|
|
|
|
if (selected_network != network)
|
|
|
|
|
{
|
|
|
|
|
selected_network = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (selected_network == "")
|
|
|
|
|
{
|
|
|
|
|
ret.Add(adapter, "unknown");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ret.Add(adapter, selected_network);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
2015-11-16 01:10:59 +01:00
|
|
|
|
|
|
|
|
|
public List<string> getAdapters() {
|
|
|
|
|
return this.serviceController.NetworkGetAdapters();
|
|
|
|
|
}
|
2014-07-11 16:38:10 +02:00
|
|
|
|
}
|
|
|
|
|
}
|