Hallo zusammen,
kann mir jemand dabei helfen, wie ich einen Rechner anpinge aus C# heraus und festellen kann ob der Rechner am Netzwerk ist oder nicht.
Mit den hier im forum stehenden vorschlägen wie:
System.Net.IPHostEntry hostInfo = new System.Net.IPHostEntry();
try { hostInfo = System.Net.Dns.GetHostByName(/*PC-Name (String)*/); }
catch(Exception)
{
// Fehlerbehandlung
}
oder
System.Net.IPHostEntry hostInfo = new System.Net.IPHostEntry();
try { hostInfo = System.Net.Dns.GetHostByAddress(/*IP-Adresse (String)*/); }
catch(Exception)
{
// Fehlerbehandlung
}
geht es nicht ich kann es nicht mit hilfe der DNS machen weil die DNS auch verfügbar ist wenn der rechne ausgeschaltet ist...
Ich bräuchte ein richtigen PING...
Mfg
Tobias
No Risk, No Fun
Ab .NET Framework 2.0 gibt es eine extra Funktion zu pingen und die Netzwerkfunktionalitäten sind verbessert.
Danke @ yahoo, aber leider funtkioniert dieser riesen code nicht da ich die Namespaces Zeittools nicht habe...
Mfg
TObias
No Risk, No Fun
Aber das bringt mir jetzt im moment auch nichts...
Mfg
Tobias
No Risk, No Fun
Hi,
ich hab mal ein programm geschrieben, das checkt ob von einer IP (PC) ein bestimmter Port (in meinem Fall Port 80) offen ist. Dazu hab ich die Socket Klasse verwendet. Schau dir die mal an.
Wenn du bis heute Abend nicht weiter kommst, kann ich dir dann auch ein Code Ausschnitt posten (hab den Code leider nur zu Hause).
Mfg Chäsi
Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher. - Albert Einstein
Es reicht doch, wenn du dir anguckst was der Code macht. Aus dem Zeittools-Namespace wird nur die Klasse StopUhr verwendet, mit der die Zeit gemessen wird, bis ein Ping antwortet. Das brauchst du doch gar nicht.
Gruss
Pulpapex
Hi!
Alternativ könntest du noch mal die Boardsuche benutzen, da gab es mehrere Einträge. Ich hab nur diesen Link gewählt, weil er auf den ersten Blick deine Anforderungen erfüllt hat.
Natürlich geht auch der Vorschlag von Pulpapex.
So denn,
Yahoo
Hallo,
versuche es doch mal damit:
public void IsOnline(ref bool BoolVar,string target)
{
int ExitCode = -1;
System.Diagnostics.Process Process = new System.Diagnostics.Process();
Process.StartInfo.UseShellExecute = false;
Process.StartInfo.CreateNoWindow = true;
Process.StartInfo.RedirectStandardOutput = true;
Process.StartInfo.FileName = "ping.exe";
Process.StartInfo.Arguments = @target;
Process.Start();
Process.WaitForExit();
ExitCode = Process.ExitCode;
if (ExitCode == 0)
{
BoolVar = true;
}
else
{
BoolVar = false;
}
}
}
Ein gutes lauffähiges Sample findest Du hier:
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...