Hallo zusammen,
ist es möglich die Informationen aus (cmd Befehl: ipconfig -all) den Status der DHCP Einstellung abzufragen? also Enabled oder Disabled?
Ich bekomme bisher nur hin, dass mir die DHCP IP angezeigt wird jedoch nicht der aktuelle Status.
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection addresses = adapterProperties.DhcpServerAddresses;
if (addresses.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress address in addresses)
{
Console.WriteLine("{0}",address.ToString());
}
Console.ReadKey();
}
}
Da habe ich auch bereits geschaut.
Der gibt alle möglichen Informationen nur die DHCP Informationen kann ich hier nicht rauslesen.
oder ist APIPA mit DHCP gemeint?
Denn APIPA ist doch nur ein Failover-System für DHCP wenn ich mich nicht irre oder?
Ich glaube ich habe es gefunden mit dem Code funktioniert es
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
foreach (NetworkInterface adapter in nics)
{
if (adapter.Supports(NetworkInterfaceComponent.IPv4) == false)
{
continue;
}
Console.WriteLine(adapter.Description);
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPv4InterfaceProperties p = adapterProperties.GetIPv4Properties();
if (p == null)
{
Console.WriteLine("No IPv4 information is available for this interface.");
Console.WriteLine();
continue;
}
Console.WriteLine("{0}",p.IsDhcpEnabled);
}
Jetzt wäre meine Frage wie ich mir nur den ersten Aktiven anzeigen lassen kann?
ipconfig ist eine eigene Anwendung, die sich auch verschiedene Informationen durch die Windows API zieht.
Gleiches musst Du auch machen; .NET hat nicht alles aus der Win32 API gewrappt.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Da gibt es den WMI Code Creator v1.0.
Da findet man diese Infos.
Hier der generierte Code:
using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_NetworkAdapterConfiguration");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_NetworkAdapterConfiguration instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("DHCPEnabled: {0}", queryObj["DHCPEnabled"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}