confusedbyte
Goto Top

CSharp, einzelnen Netzwerk-Adapter, Namen+Status auslesen und in Lable anzeigen.

Hallo liebe Community,


ich habe ein kleines Problem, ich bin recht neu in C# und muss aber ein Projekt gestallten.
Ich möchte in einem Programm ein bestimmten Netzwerkadapter auslesen und deren Namen und den OperationalStatus angzeigen lassen.
folgendes habe ich bis jetzt versucht:

public void networkadapder()
        {
            NetworkInterface verbindungen = NetworkInterface.GetAllNetworkInterfaces();

            verbindungen.Where(ethernet => ethernet.OperationalStatus == OperationalStatus.Up)
                .Where(bez => bez.Name == "Ethernet");  
            
            // hier soll die Anweisung zum übergeben an das Lable hin. Entweder IF oder Switch ......
            if (????)
                {
                lb_eth_aktivitaet.Text = ("Status: ihre Ethernetschnittstelle ist aktiv! ");  
                lb_eth_aktivitaet.ForeColor = System.Drawing.Color.Green;
                }
         }

Ich bin mir auch nicht sicher ob ich überhaut die Auswahl richtig gemacht habe.

Im folgenden Bsp. kann ich mir alle via Console anzeigen lassen.
tatic void Main(string args)
        {
            NetworkInterface verbindungen = NetworkInterface.GetAllNetworkInterfaces();

           
            foreach (NetworkInterface adapter in verbindungen)
            //"adapter" kann auch durch einen beliebigen anderen namen ersetzt werden, muss aber im folgenden Code angepasst werden 
            {
                Console.WriteLine("Name: {0}", adapter.Name == "Ethernet");  
                Console.WriteLine("  Operational status ...................... : {0}", adapter.OperationalStatus);  
                Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '='));  

            }
            //Console.WriteLine();
            Console.ReadKey();
        }


Ich muss das Ganze aber in eine WindowsForm packen und nur den einzelnen Ethernet bzw. Wifi Adapter anzeigen und darstellen.

Ich habe das ganze auch in Powershell gemacht, aber ich möchte das Ganze, gerne in C# machen.

function inettest { 
#LAN(RJ45) Verbindungstest 
##########################
$eth = Get-NetAdapter | Where-Object { $_.Name -eq "Ethernet" } | Select-Object Status |Select-Object -Last 1| Select -ExpandProperty "Status"  
#echo $eth
switch -Wildcard($eth)
    {
            "Up*" {Funktion1 ;break}  
	    "Disconnected*" {Funktion2;break}  
	    default {echo "geht nicht"}  
	}
}



Bitte um Hilfe,


Danke

Content-Key: 360580

Url: https://administrator.de/contentid/360580

Printed on: April 24, 2024 at 14:04 o'clock

Member: colinardo
Solution colinardo Jan 10, 2018 updated at 15:55:13 (UTC)
Goto Top
Servus ConfusedByte,
Beispiel zu deinem Wunsch (Variante LINQ):
        public void ShowNetworkConnectionInfo(string strName) {
            try {
                NetworkInterface iface = NetworkInterface.GetAllNetworkInterfaces().Where(x => x.Name == strName).Single<NetworkInterface>();
                string data = string.Format("Name: {0}\r\nStatus: {1}", iface.Name, iface.OperationalStatus.ToString());  
                MessageBox.Show(data);
            } catch (System.Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
Aufruf mit Name der Verbindung als Parameter
ShowNetworkConnectionInfo(@"Ethernet");
Infos was du listen willst kannst du natürlich beliebig erweitern. Ein Case auf den OperationalStatus ist ja eigentlich auch kein Hexenwerk.
switch(iface.OperationalStatus){
    case OperationalStatus.Up:
        MessageBox.Show("Jucheee, Connection is UP!");  
        break;
    case OperationalStatus.Down:
        MessageBox.Show("Och nö, Connection is down!");  
        break;
    default:
        MessageBox.Show("Status ist: " + iface.OperationalStatus.ToString());  
        break;
}

Leider wird nicht klar was du da sonst noch willst, bzw. mir ist jetzt nicht ganz klar was du nicht verstehst.

Grüße Uwe
Member: ConfusedByte
ConfusedByte Jan 11, 2018 at 07:10:47 (UTC)
Goto Top
Hallo Uwe,

danke für die schnelle Antwort. Du hast mir damit schon sehr geholfen.

Grüße Matze