Autor Beitrag
asterix76
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mi 04.03.09 22:39 
Hallo, ich habe jetzt ein wenig mit Netzwerk und c# herumexperimentiert.
Jetzt will ich mich in SNMP einarbeiten.
Gibt es eine Möglichkeit mittels C# alle SNMP Geräte in einem Netzwerk anzeigen zu lassen?

Vielen Dank für Eure Antworten
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Do 05.03.09 12:19 
schonmal versucht dich zu einem rechner via tcp zu verbinden?
asterix76 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 05.03.09 14:01 
hallo wie meinst du das?

THX für deine Antwort
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Do 05.03.09 17:49 
versuch einfach eine Verbindung mit dem TCPClient auf dem SNMP Port herzustellen.
Bei Timeout -> SNMP nicht aktiv bzw. "falsch" konfiguriert.
Bei "Verbindung Hergestellt" -> SNMP ist auf dem Rechner aktiv. ( Jetzt könntest du wenn du das SNMP Protokoll implementierst auch gleich paar statusinformationen abrufen :P )
Und vergiss nicht die Verbindung am Ende zu schließen.
asterix76 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 06.03.09 12:30 
Hallo ich habe jetzt folgendes:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
private void snmp()
        {
            TcpClient tcpc = new TcpClient();
            try
            {
                tcpc.Connect(IPAddress.Parse("192.168.0.122"), 161);
                if (tcpc.Connected)
                {
                    listBox_name.Items.Add("Connected");
                    tcpc.Close();
                }
                else
                {
                    listBox_name.Items.Add("Not Connected");
                    tcpc.Close();
                }
            }
            catch (Exception exe)
            {
                listBox_name.Items.Add("Not Connected" + exe.ToString());
            
            }
       }


Aber der verbindet zu keinem Rechner! ist da noch was falsch?

Moderiert von user profile iconKha: C#-Tags hinzugefügt
Flitzs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 123
Erhaltene Danke: 7

Win7 x64/86 WinServer 2008 R2 x64
C#/C++/C VS2010
BeitragVerfasst: Fr 06.03.09 19:22 
Hallo,
nach der Zeile tcpc.Connect(IPAddress.Parse("192.168.0.122"), 161); springt er dann zu der catch Anweisung oder zu listBox_name.Items.Add("Not Connected");? Welche Fehlermeldung gibt er dir denn aus, wenn er zu  listBox_name.Items.Add("Not Connected" + exe.ToString()); kommt?

mfg Flitzs
asterix76 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 06.03.09 21:27 
Hallo, danke für deine Antwort.
Er schmeißt den Fehler raus, das der Zielrechner die Verbindung verweigerte.
So ich habe jetzt nur nochmal ne generelle Frage:

Ich habe ein Netzwerk, in dem ca 35 Devices hängen. Jetzt will ich das Netzwerk scannen und nur die Geräte angezeigt bekommen, die auch wirklich über das SNMP Protokoll kommunizieren wollen. Das heißt, ich brauche nur die Geräte, die den Port 161 offen haben.
Das sind Drucker, oder Switsches und ähnliches. Jetzt würde ich gerne von den "Erfahrenen" hier :-) mal wissen, wie sie das realisieren würden.

Reicht ein Broadcast auf den Port 161 aus? Gibt dieser mir die nötigen Möglichkeiten?
Muss ich mit TCPClients arbeiten und auf den Port connecten? Wenn device.Connected == True, weiß ich dass der Port offen ist.
Oder muss ich mit Sockets arbeiten und mit Sockets connecten.

Wie würdet ihr da rangehen?

Vielen Dank
Flitzs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 123
Erhaltene Danke: 7

Win7 x64/86 WinServer 2008 R2 x64
C#/C++/C VS2010
BeitragVerfasst: Sa 07.03.09 23:44 
Hallo,
was mir eben noch auffiehl:
user profile iconasterix76 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo, danke für deine Antwort.
Er schmeißt den Fehler raus, das der Zielrechner die Verbindung verweigerte.


Da ich mich bisher nicht mit dem SNMP Protokoll auseinandergesetzt hatte, fiel mir erst jetzt auf, dass in dem Wikipedia Artikel steht das SNMP auf den Port 161/UDP läuft, somit kannst du mit dem TCPClient gar keine Verbindung (zumd. nicht zu einen SNMP RemoteHost) aufbauen. Also wirst du wohl mit dem UDPClient arbeiten müssen, und da UDP Verbindungslos ist und du somit keine "Verbindung hergestellt" Antwort bekommst, musst du wohl auf eine Antwort des RemoteHost warten. Wobei man auch hier beachten muss, dass weil UDP Verbindungslos ist du nicht sicher sagen kannst, dass wenn du keine Antwort bekommst, auch kein RemoteHost auf der IP ist (das Packet kann verlorengeganen sein, Checksum falsch...).

mfg Flitzs