Kann man in c# einer Mac Adresse oder BSSID ein Packet senden?
2 Antworten
Zunächst einmal ist eine BSSID eine MAC-Adresse. C# ist eine Programmiersprache. Eine Programmiersprache selbst ist natürlich nicht in der Lage, Pakete zu senden. Aber natürlich kannst Du mit C# ein Programm schreiben, welches eine Netzwerkschnittstelle eines Gerätes anweist, ein Paket zu versenden. Dazu muss man jedoch lediglich ein IP-Paket erzeugen. Die Schicht 2 (Ethernet, WLAN) wird meines Erachtens von der Schnittstelle selbst erledigt. Wenn es aber unbedingt "raw ethernet" sein muss, könnte das ein Ansatz sein: https://www.codeproject.com/Articles/5292/Raw-Ethernet-Packet-Sending
Wie in meiner Antwort auf deine andere Frage schon gesagt: Das geht in einem Localen Netzwerk mittels ARP (Address Resolution Protocol)
Mit google findet sich sogar eine schöne Anleitung zum Nutzen der ARP Tools unter Windows:
Mit Localem Netzwerk meint er wohl das lokale Netzwerk, also z. B. das Heimnetzwerk. Abgesehen davon ist die Antwort nicht zielführend, weil das ARP den Zusammenhang zwischen IP-Adresse und MAC-Adresse herstellt. Das beantwortet die Frage nicht.
Und wieso beantwortet dass die Frage nicht? Wenn ich einer MAC Adresse ein Paket schicken möchte ist es wohl das einfachste mittels ARP eine IP Adresse nach zu schlagen und über diese dann Pakete zu schicken. Auf Basis der Link Lager information MAC Adresse kann man nämlich keine Pakete verschicken.
Es geht doch nicht darum, wie ich an die MAC-Adresse komme. Es geht darum, ob der Versand des Pakets (genauer: Frames) überhaupt möglich ist. Die Frage lautet nicht: "Woher weiß ich die MAC-Adresse?"
Ob ich einen "rohen" MAC-Frame versenden kann, hängt wohl im Wesentlichen vom Treiber ab, der die Schnittstelle bedient. Daraus ergibt sich, ob die Schnittstelle den Frame um das IP-Paket bastelt, oder ob die Schnittstelle den gesamten Frame erhält und ihn nur noch auf das Medium ausgibt.
was meinst du mit Localen Netzwerk