Frage

Ich mache ein Projekt, bei dem ich benutzerdefinierte Pakete herstellen muss. Das heißt, ich muss die Kontrolle über jeden Paketheader haben. Ich versuche dies mit Sockets zu tun. Grundsätzlich muss ich Folgendes tun:

SOCKET s = socket(PF_UNSPEC, SOCK_RAW, ethernet_type);

Das Ethernet_Type ist etwas, das nicht standardisiert ist, wie 0xaaaa. Ich benutze htons (). Außerdem ist es mir sehr vorzuziehen, WinPCap nicht zu verwenden.

Im Moment erhalte ich Fehler 10043, Protokoll nicht unterstützt.

Die Fehlermeldung scheint darauf hinzudeuten, dass ich das Protokoll in mein System konfigurieren kann, aber ich habe keine Ahnung, wie das geht.

Es sagt:

Protokoll nicht unterstützt. Das angeforderte Protokoll wurde nicht in das System konfiguriert oder es gibt keine Implementierung dafür. Ein Socket -Anruf fordert beispielsweise einen Sock_dgram -Socket an, gibt jedoch ein Stream -Protokoll an.

Es gibt hier ein paar verschiedene Probleme. Wenn also jemand überhaupt Input hat, würde ich es wirklich zu schätzen wissen.

War es hilfreich?

Lösung

Entsprechend diese Artikel, Microsoft entfernte den Rohstockenunterstützung von Windows in einem nicht-fahrbaren Hotfix. Sie können also kein Glück mehr haben, wenn Sie nicht zu einem anderen Betriebssystem wechseln möchten.

Andere Tipps

Ich denke, dass es ziemlich schwierig ist, neue Protokolle zum Socket -Anruf hinzuzufügen. Sie müssen sicherstellen, dass der Socket diesen Anruf unterstützt. Ich denke, Sie müssten die Socket -Funktion neu kompilieren und ich denke nicht, dass sie unter Windows leicht möglich ist.

Wenn Sie benutzerdefinierte Pakete basteln, müssen Sie kein neues Protokoll erstellen

Ich denke, dass die richtige Art der Angabe einer rohen Steckdose so ist

SOCKET s;
s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);

Wenn Sie wirklich versuchen, mit Raw Ethernet zu spielen, wie Ihre Variablennamen vorschlagen, verwenden Sie entweder den WinPCap -Treiber oder schreiben Sie Ihr eigener Fahrer

Ich glaube nicht, dass es eine andere "einfache" Lösung für Raw Ethernet gibt. WinpCap ist ziemlich einfach, also möchten Sie es sich vielleicht ansehen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top