Broadast versenden
-
Hallo,
ich würde gerne einen Broadcast ans Netz senden der sollte so aussehen:
Broadcast: ff ff ff ff ff ff
Meine Mac: 08 00 46 b6 b3 bb
Daten: 00 0a aa aa 03 08 00 06 01 fd 05 00Als Antwort würde ich dann soetwas bekommen von mehreren Servern:
08 00 46 b6 b3 bb 08 00 06 01 07 ff 00 38 aa aa ..F..........8..
03 08 00 06 01 fd 05 01 0c 01 53 37 2d 34 30 30 ..........S7-400
20 43 50 00 1e 02 53 37 2d 34 30 30 20 43 50 3a CP...S7-400 CP:
30 38 2e 30 30 2e 30 36 2e 30 31 2e 30 37 2e 46 08.00.06.01.07.F
46 00 04 03 07 00 F.....Ich weiß, das das mit der pcap.h und wincap... möglich ist. Aber ich möchte kein neues programm installieren.
Gibt es irgendeine Möglichkeit das zu realisieren?
Würde mich sehr freuen, wenn mir jemand weiterhelfen könnteGruß Tupo13
-
Hallo
Kann mir denn keiner einen Tipp geben wie ich das anstellen kann?
Wie erstelle ich denn ein Socket, das kein Protokoll benutzen soll?
Gruß Tupo13
-
Tupo schrieb:
...Wie erstelle ich denn ein Socket, das kein Protokoll benutzen soll?...
Broadcasts werden auch über ein Protokoll gesendet, meißtens UDP.
Gesendet wird mit sendto() und empfangen mit recvfrom().
-
Wenn Du was ganz spezielles versenden willst, kannst Du prinzipiell einen RAW-Socket verwenden. Das geht aber ab XP-SP und W2k3 nicht mehr (Raw-Sockets gehen schon noch, nur kannst Du die IP/MAC nicht mehr verändern).
Broadcasts kannst Du (wie schon gesagt wurde) mit "sendto" versenden. Dazu musst Du den Socket per setsockopt mit SO_BROADCAST entsprechend gesetzt haben.
Siehe auch (ganz unten):
http://www.codeguru.com/forum/showthread.php?t=372452
-
@ Zerebus
@ Jochen Kalmbach
Danke für eure AntwortenDas Problem dabei ist, dass ich wirklich raw sockets senden möchte, so wie ich das sehe(und ihr das auch gesagt habt) kann ich über winsock nur broadcasts verschicken die auf IP aufbauen - oder?
Wenn das so ist, dann kann ich mein Ziel mit der Winsock nicht erreichen.
Die Sever antworten leider auf einen UDP-Broadcast nicht.Das Protocol, welches ich verwenden will(muß) nennt sich LLC.
Gibt es keine anderen Möglichkeiten? Oder kann ich das vielleicht doch über winsock erreichen?
Gruß Tupo13