Devo scrivere uno script trceroute ma non sono sicuro che i miei tentativi siano corretti.Scrittura di uno script traceroute di base in C
In questo momento sto facendo così (per favore correggetemi se sto facendo di sbagliato o goffo):
- ottenuto una struct per IP e udpheader
- Una funzione di checksum
- Apertura di 2 socket: uno per l'invio di pacchetti UDP in modalità SOCK_RAW (per manipolare ttl) e uno per ricevere risposte ICMP dai router.
- Utilizzando sendto() per inviare pacchetto UDP
- Non avendo idea di come ricevere ed elaborare una risposta ICMP
ci sono modi più comodi per cambiare la TTL che usare SOCK_RAW dove devo definire tutte roba da intestazione da solo? Quali parametri dovrei usare per socket() quando si apre la calza ICMP? Come ricevere la risposta ICMP?
Grazie per la risposta. Mi ha portato avanti una litte. –