Autor |
Beitrag |
DevInet
      
Beiträge: 43
Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
|
Verfasst: Fr 25.06.10 10:21
Hallo miteinander.
Ich soll für die Schule ein Programm schreiben, mit dem ich ein Netzwerk durchsuche, indem ich das Subnetz von 1 bis 255 durchpinge.
Ih bekomme allerdings keine Antworten zurück. Kann sich jemand mal meinen Source-Code ansehen und mir weiterhelfen?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.NetworkInformation; using System.IO;
namespace Network_Sniffer { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void btn1_Click(object sender, EventArgs e) {
Ping myPing = new Ping(); int timeout = 1000; byte[] buffer = new byte[4096]; PingOptions pOptions = new PingOptions(); PingReply reply; for (int i = 1; i >= 255; i++) { reply = myPing.Send(iprBox.Text + "." + i, timeout, buffer, pOptions); if (reply.Status == IPStatus.Success) MessageBox.Show("Anwort in " + reply.RoundtripTime.ToString() + "ms erhalten"); } } } } |
Vielen Dank im vorraus.
Mfg
DevInet
Moderiert von Kha: C#-Tags hinzugefügt
|
|
danielf
      
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Fr 25.06.10 10:37
Hallo,
bitte verwende für C#-Code den Tag [cs ] oder geh über Bereiche, C# + um markierten Bereich als Code zu kennzeichnen.
Zu deinem Problem: Es kann durchaus sein, dass ein Rechner eine IP-Addresse hat aber nicht auf ein Ping-Request antwort. Die Antwort kann von einer Firewall geblockt werden. Du hast allerdings ein anderes Problem und zwar ist deine Schleife falsch programmiert. Hier findest du wie du es richtig machst.
Gruß
|
|
jaenicke
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 25.06.10 14:21
DevInet hat folgendes geschrieben : | Ih bekomme allerdings keine Antworten zurück. |
Du solltest dich einmal mit dem Debugger auseinandersetzen. Denn wenn du einen Haltepunkt in die Schleife gesetzt hättest oder gleich schrittweise alles durchgegangen wärst, dann hättest du gesehen, dass die Schleife nie aufgerufen wird.
Mehr dazu findest du bei Microsoft:
msdn.microsoft.com/d...ibrary/aa290881.aspx
msdn.microsoft.com/d...ibrary/4607yxb0.aspx
|
|
DevInet 
      
Beiträge: 43
Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
|
Verfasst: Fr 25.06.10 19:38
Aber wieso wird die Schleife nie durchlaufen? WO steckt der Syntax-Fehler, oder was auch immer?
Mfg DevInet
|
|
danielf
      
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Fr 25.06.10 19:59
Mit so einer Einstellung wirst du beim Programmier nie weit kommen.
|
|
jaenicke
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 25.06.10 21:11
|
|
huuuuuh
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: Sa 26.06.10 15:16
ehrlich gesagt, is mir das auch schon passiert. als ich mit c# angefangen hab. erscheint einem jetzt zwar dumm, aber damals hab ich mich stundenlang gefragt, wo der fehler liegt. meist während ich die hilfe über for-schleifen offen hatte 
|
|
DevInet 
      
Beiträge: 43
Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
|
Verfasst: Di 29.06.10 17:18
So, danke erstmal für die bisherige Hilfe. Leider habe ich immernoch ein Problem. Unter umständen 2
Das Programm stürzt ab, sobald es anfangen soll zu suchen. Soll heissen, die erste IP findet er noch(habs mit ner msg-Box getestet), danach hängt es sich auf.
Wenn ich nun den Task beende schmiert der komplette PC ab. Schreibt visual studio irgendwo nen fehlerberict hin? aus dem vom System werd ich in diesem Fall nicht ganz schlau.
Mfg
DevInet
|
|
DevInet 
      
Beiträge: 43
Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
|
Verfasst: Di 29.06.10 19:39
So, Fehler gefunden aber noch keinen Plan wie ich den beheben kann.
Mfg
DevInet
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Di 29.06.10 19:50
Du könntest uns ja verraten, was Du gefunden hast ...
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
DevInet 
      
Beiträge: 43
Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
|
Verfasst: Mi 30.06.10 22:24
Also ich hab den Bluescreen wegbekommen indem ich ne zweite Variable namens J hinzugefügt habe.
Was jetzt immernoch nicht funzt ist das hochzählen von J, damit er weiterpingt bis er bei 255 ist. Momentan durchläuft er die Schleife 255 mal, pingt aber immer nur zum Beispiel "192.168.2.J", wobei J immer gleich 1 bleibt.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.NetworkInformation; using System.IO;
namespace Network_Sniffer { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void btn1_Click(object sender, EventArgs e) { int j = 1;
Ping myPing = new Ping(); int timeout = 1000; byte[] buffer = new byte[32]; PingOptions pOptions = new PingOptions(); PingReply reply; for (int i = 1; i <= 255; i++) { reply = myPing.Send(iprBox.Text + "." + j++, timeout, buffer, pOptions); if (reply.Status == IPStatus.Success) ipfBox.Items.Add(reply.Address.ToString()); } } } } |
|
|
DevInet 
      
Beiträge: 43
Win XP, Win 7 Prof., Linux Mandriva
C#(VS 2010), Java, php
|
Verfasst: Do 01.07.10 00:07
So, Prog ist fertig *freu*
Programm-Code mit Kommentaren liefer ich nach.
Danke nochmal für die Hilfe.
Mfg DevInet
|
|