In teoria sarebbe a livello logico ancora meglio...
Se buffer è un puntatore a char allora dovrebbe bastare
struct iphdr *ip = buffer;
va boh.... tanto ho capito che non ne uscirò mai... il fatto è che non trovo niente online su come usare passo passo i puntatori ma non per giocare, per fare cose serie...
arrivo alla solita solfadetto in parole poverissime) il puntatore è una variabile che punta all'indirizzo di un'altra variabile o struttura dati ecc..
a=5
p=&a; //p= all'indirizzo di memoria di a che contiene 5
Da qui ad arrivare a tutti gli altri esempi non si sa come fare..
Comunque se avete per caso tempo e voglia di illuminarmi un po'... vi sarei gratissimo...