PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] Broadcast über IP Bereich mit Antwort


DraconiX
2013-01-04, 12:12:33
Ich habe mir nun ein kleines Porgramm geschrieben welches ein Magic Paket an verschiedene Mac Adressen schickt. Soweit so gut, das funktioniert ganz klasse.

Nun möchte ich, quasi die Rechner in gewissen Intervallen (einmal in der Minute reicht mir da ja schon) quasi "anpingen" - nun habe ich ja nur die Mac-Adresse parat, da ich die Rechner weiterhin via DHCP angeschlossen lassen möchte. Würde ich gerne bei den "pingen" via Mac auch gleich die IP Adresse zurückgegeben haben wollen (was nen Satzbau :freak:).

Wie stelle ich das am dümmsten an? Eine Client/Server Anwendung kann selbstverständlich auch in Frage kommen - das ich für die Clients ein kleines Programm mache (hat für mich im Nachhinein sowieso mehr vorteile) stellt also ein Plus dar.

Mein Problem: Wie scanne ich den gesamten IP Bereich (255.255.0.0) nach jener Mac ab?!

nalye
2013-01-04, 12:25:06
Linux? Dann arping

Monger
2013-01-04, 12:55:08
Es gibt unter Windows natürlich auch ARP, aber meines Wissens nicht direkt im .NET Framework.

Du kannst natürlich auf einem bestimmten Subnetz broadcasten, und da du was von Magic Packet sagst, vermute ich dass Sender und Empfänger bei dir im selben Subnetz sind. Auf L2 kannst du ja eh nicht routen. Jeder Client der sich das Paket abholen will, muss halt nen entsprechenden Broadcast Client am Laufen haben.

ESAD
2013-01-05, 13:34:28
Es gibt unter Windows natürlich auch ARP, aber meines Wissens nicht direkt im .NET Framework.

Du kannst natürlich auf einem bestimmten Subnetz broadcasten, und da du was von Magic Packet sagst, vermute ich dass Sender und Empfänger bei dir im selben Subnetz sind. Auf L2 kannst du ja eh nicht routen. Jeder Client der sich das Paket abholen will, muss halt nen entsprechenden Broadcast Client am Laufen haben.

es gibt noch dlls für .net, von dritten, die es erlauben das komplette paket was auf die netzwerkschnittstelle gelegt wird vollständig selbst zu definieren. Damit kannst du dann ARP Broadcasts versenden.

DraconiX
2013-01-06, 09:07:39
Soo... ARP nutzt mir nur in die Gegenrichtung etwas, also IP bekannt -> MAC gesucht, ein ARP Paket zu "formen" würde ich sogar "händisch" machen. Sind ja fest definierte Pakete, da bedarf es keiner extra API.

Jedoch bräuchte ich ja aber das Gegenteil, quasi RARP. Das stellt mich vor die Herrausforderung :freak: - das effektivste und einfachste wäre wirklich auf jeden Clienten eine kleine Software laufen zu lassen, welche von sich einfach auf ein ARP oder UDP Broadcast antworten und den Server kontaktieren... so in etwa (habsch da ma was jemalt :D )

http://www.abload.de/img/broad08on3.png

Trap
2013-01-06, 10:36:13
Eventuell http://en.wikipedia.org/wiki/Bonjour_(software) verwenden?

DraconiX
2013-01-06, 13:26:47
Bonjour?! Nein, erstens isses absoluter Overkill, zweitens müsste ich an die API ran - da mein Programm dies ja auswerten und weiterverarbeiten muss und drittens: aus Überzeugung nicht :freak:

Aber danke für den Hinweis. ;)

Trap
2013-01-06, 14:57:36
Dann vielleicht eher http://de.wikipedia.org/wiki/Simple_Service_Discovery_Protocol

Man kann natürlich auch was eigenes machen, so eine echten Vorteil hätte das geteilte Protokoll ja nicht.

DraconiX
2013-01-07, 14:14:58
Hab es nun angefangen so umzusetzen wie in meinem Bild und funktioniert auch, ist im Grunde eine Multi-Client Anwendung geworden.

http://www.abload.de/img/draconetviewerztcb4.png