computer im netzwerk anpingen (c#)

  • geschlossen
  • C#

  • Die_Pest
  • 3533 Aufrufe 5 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • computer im netzwerk anpingen (c#)

    hi

    hätte jemand ne idee für nen code um einen computer im netzwerk mit hilfe einer gegebenen ip anzupingen?
    als praktisch zu überprüfen ob diese ip vergeben is und ob der computer gerade online is...
    und kennt jemand vll ne möglichkeit diesen computer dann nach den freigaben zu durchsuchen?

    freu mich über jede hilfe

    mfg die_pest

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Die_Pest ()

  • Hier ist ein Vorschlag in C#

    Quellcode

    1. using System.Net.NetworkInformation;
    2. Ping myPing = new Ping(); //Instanziieren
    3. String host = "fritz.box"; //oder "192.168.178.1"
    4. byte[] buffer = new byte[32]; //der Buffer
    5. int timeout = 1000; //Timeout in MilliSekudnen
    6. PingOptions pingOptions = new PingOptions(); //Optionen können festgelegt werden
    7. PingReply reply = myPing.Send(host, timeout, buffer, pingOptions); //Senden der Anfrage
    8. //Statusüberprüfung
    9. if (reply.Status == IPStatus.Success)
    10. {
    11. Console.WriteLine("Antwort in {0}ms erhalten", reply.RoundtripTime);
    12. }
    13. else if (reply.Status == IPStatus.TimedOut)
    14. {
    15. Console.WriteLine("Timeout");
    16. }
    Alles anzeigen


    oder in Java

    Quellcode

    1. String host = "172.16.0.2"
    2. int timeOut = 3000; // I recommend 3 seconds at least int timeout = 3000; / / Ich empfehle 3 Sekunden mindestens
    3. boolean status = InetAddress.getByName(host).isReachable(timeOut) boolean status = InetAddress.getByName (Host). isReachable (timeOut)



    oder in Python

    Quellcode

    1. def ping(host, retries=3, timeout=5, delay=1, size=64, hops=30):
    2. pinger = get_pinger(retries, timeout, delay, size, hops)
    3. sum = 0
    4. Nxmit = 0
    5. Nrecv = 0
    6. _min = sys.maxint
    7. _max = 0
    8. print "Pinging %s with %d bytes of data." % (host, size)
    9. try:
    10. while 1: # escape with SIGINT (^C)
    11. Nxmit = Nxmit + 1
    12. host, rttime = pinger.ping(host)
    13. if rttime >= 0:
    14. sum += rttime
    15. Nrecv = Nrecv + 1
    16. _min = min(_min, rttime)
    17. _max = max(_max, rttime)
    18. print "%-16s %d ms" % (host, rttime)
    19. scheduler.sleep(pinger.delay)
    20. except KeyboardInterrupt:
    21. print "%d packets transmitted, %d packets received, %d%% packet loss" % (Nxmit, Nrecv, 100-(Nxmit/Nrecv*100))
    22. print "round-trip min/avg/max = %d/%d/%d ms" % (_min, sum/Nrecv, _max)
    Alles anzeigen



    oder als shell:

    Quellcode

    1. ping
    Es ist besser zu schweigen und für einen Narren gehalten zu werden, als zu reden und damit alle Zweifel zu beseitigen ...

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von wasawasa ()

  • vielen dank für deine großzügige beispielauflistung!:thx::thx::thx:
    aber c# war schon richtig!
    ich versuchs jetzt mal herauszufinden obs funktioniert und ich meld mich nochmal!
    mfg die_pest

    hi
    der code von wasawasa war echt hilfreich!
    hat jetzt jemand auch noch code um vll auf diesen computer mit der gegebenen ip zuzugreifen?

    mfg die_pest

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Doppelpost

  • OK.
    Jetzt wird es etwas schwerer :).

    Für die Aufgabe bieter sich das "System.Management" an.
    Ist aber nicht von Beginn an in einem Projekt verfügbar.
    Darum unter "Projekt->Verweise hinzufüger ..." die Assembly "System Management" hinzufügen.
    Zum spielen danach ein Windows Forms Projekt anlegen und einen Button auf die Form werfen.
    Die Ergebnisse danach einfach im Debugger anschauen.

    Und mal ein Blick in den Artikel werfen: //Direkter Download gelöscht

    Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Management;
    10. namespace WindowsFormsApplication2
    11. {
    12. public partial class Form1 : Form
    13. {
    14. public Form1()
    15. {
    16. InitializeComponent();
    17. }
    18. private void button1_Click(object sender, EventArgs e)
    19. {
    20. ConnectionOptions oConn = new ConnectionOptions();
    21. ManagementScope oMs = new ManagementScope(@"\\" + "192.168.0.20" + "\\root\\cimv2", oConn);
    22. ObjectQuery oQuery = new System.Management.ObjectQuery("Select * from Win32_Share");
    23. ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);
    24. ManagementObjectCollection oReturnCollection = oSearcher.Get();
    25. foreach (ManagementObject oReturn in oReturnCollection)
    26. {
    27. String name, caption, path;
    28. name = oReturn['Name'].ToString();
    29. caption = oReturn['Caption'].ToString();
    30. path = oReturn['Path'].ToString();
    31. }
    32. }
    33. }
    34. }
    Alles anzeigen


    Ach ja ... und die IP-Adresse anpassen.
    Meinen Rechner wirst Du kaum in Deinem Netzwerk finden ...
    Es ist besser zu schweigen und für einen Narren gehalten zu werden, als zu reden und damit alle Zweifel zu beseitigen ...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Direkter Download