Laden...

DHCP Status abfragen

Erstellt von Bratwurstexe vor einem Jahr Letzter Beitrag vor einem Jahr 681 Views
Bratwurstexe Themenstarter:in
24 Beiträge seit 2021
vor einem Jahr
DHCP Status abfragen

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

J
251 Beiträge seit 2012
vor einem Jahr

Hilft Dir evtl. folgendes: IPv4InterfaceProperties.IsDhcpEnabled?

Bratwurstexe Themenstarter:in
24 Beiträge seit 2021
vor einem Jahr

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?

16.835 Beiträge seit 2008
vor einem Jahr

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.

190 Beiträge seit 2012
vor einem Jahr

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

  • Wer lesen kann, ist klar im Vorteil
  • Meistens sitzt der Fehler vorm Monitor
  • "Geht nicht" ist keine Fehlermeldung!
  • "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"

GidF