Domanda

Sto facendo un progetto in cui devo mestiere pacchetti personalizzati. Cioè, devo avere il controllo di ogni pacchetto. Sto cercando di farlo usando i socket. In sostanza, quello che devo fare è questo:

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

L'ethernet_type è qualcosa che è personalizzato, non standard, come 0xAAAA. Sto usando htons (). Inoltre, è molto preferibile per me non usare WinPCap.

In questo momento, sto ottenendo l'errore 10043, il protocollo non supportato.

Il messaggio di errore sembra suggerire che posso configurare il protocollo nel mio sistema, ma non ho idea di come fare.

Si dice:

Protocollo non supportato. Il protocollo richiesto non è stato configurato nel sistema, o nessuna implementazione per esso esiste. Ad esempio, una chiamata presa richiede un socket SOCK_DGRAM, ma specifica un protocollo di flusso.

Ci sono alcuni problemi diversi, quindi se qualcuno ha un ingresso a tutti mi piacerebbe davvero apprezzare.

È stato utile?

Soluzione

questi articoli , Microsoft ha rimosso il supporto raw socket da Windows in un hotfix non rimovibile. Così si può essere fuori di fortuna se non si vuole passare ad un altro sistema operativo.

Altri suggerimenti

Credo che l'aggiunta di nuovi protocolli per la chiamata presa sarebbe qualcosa di molto difficile. Dovreste fare in modo che supporti presa quella chiamata. Penso che si dovrebbe ricompilare la funzione di presa e io non penso che sia facilmente possibile sotto le finestre.

Crafting pacchetti personalizzati non richiede di creare un nuovo protocollo

Credo che il modo corretto di specificare un socket RAW è come questo

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

Se si sta veramente cercando di giocare con ethernet cruda come i vostri nomi delle variabili suggerire, allora o si utilizza il driver WinPcap o scrivere un proprio driver

Non credo che ci sia un'altra soluzione "facile" per ethernet crudo. WinPcap è piuttosto facile così si potrebbe desiderare di check it out

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top