1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Welche PC's laufen?

Discussion in 'Programmieren' started by Fabiansson, Nov 27, 2009.

Thread Status:
Not open for further replies.
  1. Fabiansson

    Fabiansson Kbyte

    Hallo Leute,

    Ich habe mir überlegt mit Visual Basic, ein Simples Progrämmchen zu machen um schnel herauszufinden, welche PC's in meinem Heimnetztwerk laufen und dies in eine simple Darstellung darzustellen^^!

    So ich habe mi gedacht, es könnte so funktionieren:

    Ich starte zwisch z.B. 192.168.0.0 - 192.168.255.255 Ping-Befehle, und wenn ich Atwort darauf bekomme, will ich dass der PC-Name der IP-Adresse in grün aufleuchtet...

    Ist das überhaupt möglich und wie mache ich das am einfachsten??

    Ich habe nur sehr geringe Kenntnisse in Sache rogrammieren......


    Gruss Fabiansson

    ;-)
     
  2. kalweit

    kalweit Hüter der Glaskugel

  3. Fabiansson

    Fabiansson Kbyte

    Ich will es aber als Übungsprojekt, ich habe schon gewusst dass es sowas schon gibt!

    Eigentlich lautet die Frage eher wie starte ich simple Ping-Befehle in einem bestimmten IP-Bereich?

    Den Rest, mit IF... kann ich dann selber^^

    Gruss Fabiansson
     
  4. kalweit

    kalweit Hüter der Glaskugel

    Du musst jede IP einzeln anpingen.
     
  5. Fabiansson

    Fabiansson Kbyte

    Und wie soll das gehen?

    Kann mir vielleicht jemand einen kurzen Code schreiben , der alle Schritte ganz kurz zusammenfasst; wie ich die einzelen PC's anpinge, wie ich dann die Ergebnisse asuwerte, wei man macht dass wenn der Ping erfolgreich war ein Button grün wird, wenn nicht rot wird mit Hilfe von If-Befehlen....

    Ich erwarte jetzt nicht, dass ihr mir das geammte Programm schreibt, sonndern nur Teilschritte, damit ich dann das Prinzip verstehe und dann den Text so gut wies geht selber erweitern kann...

    Danke zum voraus... ;-)

    Gruss Fabiansson
     
  6. Hnas2

    Hnas2 Ganzes Gigabyte

    Redest du nicht von einer Hausaufgabe?
    Einen CMD-Befehl solltest du schon ausführen können, alles andere sind nur Parameter. Damit du den gesamten Bereich 0..255 abdecken kannst, packst du das in eine Schleife.
    Dann mach mal.
     
  7. Fabiansson

    Fabiansson Kbyte

    1) Nein, es ist keine Hausaufgabe, es ist eine rene persönliche Übung!

    2) Ich kann cmd Befehle ausführen, wie soll ich aber eine Schleife beginnen, wenn ich nicht ein mal weiss wo ich beginnen muss...

    3) Lol, wie und womit soll ich beginnen???'

    Könnt ihr mir nicht ein ganz siples Beispiel geben?:bet:

    Das einzige wass ich will, ist eine kleine Exe, die wenn ich auf einen Button drücke, bestimmte IP-Adresse "abpingt" und mir dann, wenn der PC läuft nen grünen bzw. roten Plek hinter die IP-Adresse macht in einem Label, oder was weiss ich...

    Das einzige was ich aber bis jetzt gemacht heb ist ein HelloWorld und ein Taschenrechner, also bitte habt Verständnis.

    Ich will halt nur fortschritte machen, und wozu einen Browser bastelln oder was weiss ich, wenn ich was basteln knnte was mir hilft??'

    Also auch wenn sich der ganze Post ein wenig hart anhörte, nach 3h verzweifeltem googeln, ist es wohl klaar...

    Danke zum voraus, gute Nach

    und

    Gruss Fabiansson
     
  8. kalweit

    kalweit Hüter der Glaskugel

    ...da du ja was lernen willst, schaden ein paar Stunden mehr googeln auch nicht - ist ja schließlich auch nicht eilig. Du schaffst das schon.
     
  9. Fabiansson

    Fabiansson Kbyte

    OK, ich habe 5h danach gegoogelt und nichts gefunden was mir hilft, ich benutzt den Freeware compiler von microsoft der Visual Basic express edition 2008...

    Diese Seiten habe ich gefunden:

    http://www.office-loesung.de/ftopic63324_0_0_asc.php
    http://sps-forum.de/showthread.php?t=26010
    http://www.winfuture-forum.de/index.php?showtopic=151386
    http://www.shadoware.de/vb/ping.html
    http://vbnet.mvps.org/index.html?code/internet/ping.htm
    http://forum.chip.de/programmieren/ping-programm-302090.html

    Wenn das nicht genug ist weiss ich auch nicht mehr, dass einzige was ich weiss, ist dass ich schon nur nach ein paar Zeilen aus diesen Seiten in meinen Compiller einfüge Fehler findet, also kann ich nicht verstehen wieso andere den Leuten im Forum, halbe Programme schreiben und ihr mich immer auf andere Seiten verlinckt....

    Ich bitte um Hilfe und einen kurzen Code, indem alles schön steht, den ich dann selber erweitern kann...

    Gruss Fabiansson
     
  10. daboom

    daboom Megabyte

    Ich verstehe das Problem mit der Schleife über die CMD Befehle nicht. Du sagst, Du weißt wie es geht, aber nicht, wo Du anfangen sollst?

    Du musst halt eine Schleife über alle IP Adressen, die angepingt werden sollen, basteln. Du wolltest, glaub ich, einfach alle eines bestimmten Subnetzes pingen, also 1-255. Ne Zählschleife von 1-255 wirst Du ja wohl hinkriegen :rolleyes:

    In jedem Durchlauf musst Du dann halt über CMD den ping Befehl auführen und ihm die IP Adresse entsprechend Deiner Zählvariablen übergeben. Genau wie Du das in der Kommandozeile auch machen würdest.

    Schwierig wird nur, das Ergebnis auszuwerten. Imo gibt es da nur den Weg, die Konsolenausgabe von ping zu parsen und nach einem bestimmten Satzteil oder Wort zu suchen, was den Erfolgsfall anzeigt.
    Eine sehr schlechte Lösung, wenn es eine bessere gibt, berichtigt mich bitte ;)

    Besser wäre es wahrscheinlich, nen RAW Socket aufzumachen und den ICMP Befehl direkt selbst zu schicken. Aber ich weiß nicht, in wie weit das in VB möglich ist. Außerdem würde es wohl für ein Übungsprojekt zu weit führen... :)
     
  11. Fabiansson

    Fabiansson Kbyte

    Was schlägt ihr mir den für ein Übungsprojekt vor, dass man auch ab und zu gebaruchen kann, und nicht zu schwierig ist?

    Gruss Fabiansson...
     
  12. daboom

    daboom Megabyte

    Hmm, jetzt ich hier nen kilometerlangen Post, um Dir bei dem Problem zu helfen und Du schwenkst ausgerechnet jetzt um? :rolleyes:

    Was kann denn Dein Taschenrechner so alles?
     
  13. Fabiansson

    Fabiansson Kbyte

    Ja ich habe ja schion vorgehabt, das mit dem Ping zu machen, aber wenn du sagst es würde zu weit führen und ich jetzt schon 5 h mit Freund Google verbracht habe, schwinden langsam die motivierenden Gedanken^^

    Wie auch immer, für ne weitere Lösung bin ich natürlich offen, nur ich weiss nichtmal wie man eine Schleife startet...

    Gruss Fabiansosn

    Edit: was wäre mit dem?:

    http://vbnet.mvps.org/index.html?code/internet/ping.htm
     
    Last edited: Nov 28, 2009
  14. kalweit

    kalweit Hüter der Glaskugel

    IMO braucht man nichts zu senden. Die Initialisierung der Verbindung sollte reichen. Ist das Ziel nicht vorhanden, wirft das Ganze einen Fehler. Mehr will der TO ja gar nicht wissen.
     
  15. kalweit

    kalweit Hüter der Glaskugel

    ...dann wäre wohl ein Buch mit einer Einführung zum Programmieren das Mittel der Wahl.
     
  16. daboom

    daboom Megabyte

    Bei nem TCP Socket ok, aber imo ist ein RAW Socket noch verbindungslos, oder? Hab noch nie was damit gemachrt, muss ich sagen. In Java geht ja nur TCP/UDP ;)

    Edit: @TO: Mit dem zu-weit-führen meinte ich den RAW Socket, nicht Ping über CMD. Wenn Du aber wirklich noch nicht mal weißt, wie man eine Schleife programmiert, dann beschäftige Dich wirklich erstmal mit den Grundlagen und melde Dich wieder, wenn Du da fit bist.
     
  17. Fabiansson

    Fabiansson Kbyte

    Das ist ja einer der bekanntesten VB- Übungsseiten:

    http://www.vb-seminar.de/

    Ist da der Text auch übernehmbar, zu exprees edition 2008, denn die Seite sieht ein wenig alt aus^^
     
  18. daboom

    daboom Megabyte

    Dort wird aber nicht besonders auf die Grundlagen des Programmierens allgemein eingegangen. Oder hast Du dort etwas von Schleifen o.ä. lesen können? Ich jedenfalls nicht...

    Edit: Nix gesagt, die Reihenfolge ist nur etwas unglücklich...

    Edit2: Lies Dir dort am besten erstmal folgende Punkte durch:
    - 3 - Strukturen
    - 9 - Schleifen
    - 11 - Unterprogramme
    - 21 - Select Case

    Und versuch die Sachen in eigenen Beispielen durchzuprobieren. Zusätzliche Lektüre, wie kalweit empfohlen hat, ist trotzdem empfehlenswert.
     
    Last edited: Nov 28, 2009
  19. VB-Coder

    VB-Coder Megabyte

    In VB2008 verwendest du am besten

    Code:
    My.Computer.Network.Ping
    Du holst dir also die Rückgabe am besten in eine Variable
    Code:
    dim PingAdresse as string
    PingAdresse = "www.google.de"
    dim Status as String
    Status = My.Computer.Network.Ping(PingAdresse)
    
    Wenn die Addy erreichbar ist, dann bekommt Status TRUE zurück, ansonsten Nothing. Sprich du musst dann nurnoch den obigen Code durch eine Schleife laufen lassen und immer vorher schön PingAdresse anpassen lassen und nach jedem Status Durchlauf checken lassen, ob Status True ist - wenn ja mach Feld XYZ Grün, sonst Rot.
     
  20. Fabiansson

    Fabiansson Kbyte

    OK, bis soweit habe ich es auch selber fertig gebracht, aber danke schonmal^^

    Mein Problem bestht aber jetzt dahin dass ich nicht weiss wie ein bestimmten Bereich abpingen

    Mein Code:

    Dim host As Integer = 1


    If My.Computer.Network.Ping("192.168.4." & host) Then
    MsgBox("success " & host)
    Else
    MsgBox("no reply from " & host)
    End If

    For host = 1 To 254

    Next

    If My.Computer.Network.Ping("192.168.4." & host) Then
    MsgBox("success" & host)
    Else
    MsgBox("no reply from" & host)
    End If







    Aber irgendwie klappt das nicht so, weil beim ersten Versuch, giebt es zwar 192.168.4.1 aber dann beim zwitem Versuch schon 192.168.4.254!!!

    Wie muss ich das ändern, und wie könnte ich das ganze noch ein wenig verkürzen....

    Danke zum voraus

    Gruss Fabiansson
     
Thread Status:
Not open for further replies.

Share This Page