Laden...

Rechner anpingen mit C#

Erstellt von Matrix-NTN vor 19 Jahren Letzter Beitrag vor 19 Jahren 2.794 Views
M
Matrix-NTN Themenstarter:in
267 Beiträge seit 2005
vor 19 Jahren
Rechner anpingen mit C#

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

Y
220 Beiträge seit 2004
vor 19 Jahren

Hallo,

vielleicht hilft dir das, habe ich mit Boardsuche gefunden: Try this

So denn,

Yahoo

1.457 Beiträge seit 2004
vor 19 Jahren

Ab .NET Framework 2.0 gibt es eine extra Funktion zu pingen und die Netzwerkfunktionalitäten sind verbessert.

M
Matrix-NTN Themenstarter:in
267 Beiträge seit 2005
vor 19 Jahren

Danke @ yahoo, aber leider funtkioniert dieser riesen code nicht da ich die Namespaces Zeittools nicht habe...

Mfg
TObias

No Risk, No Fun

M
Matrix-NTN Themenstarter:in
267 Beiträge seit 2005
vor 19 Jahren

UNd biss wann kommt das Framework 2.0 heraus?

No Risk, No Fun

M
Matrix-NTN Themenstarter:in
267 Beiträge seit 2005
vor 19 Jahren

Aber das bringt mir jetzt im moment auch nichts...

Mfg
Tobias

No Risk, No Fun

C
122 Beiträge seit 2004
vor 19 Jahren

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

P
939 Beiträge seit 2003
vor 19 Jahren

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

Y
220 Beiträge seit 2004
vor 19 Jahren

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

C
156 Beiträge seit 2004
vor 19 Jahren

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



4.221 Beiträge seit 2005
vor 19 Jahren

Ein gutes lauffähiges Sample findest Du hier:

http://www.codeproject.com/useritems/CSharpPing.asp

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...