Ping program
04-01-2007,10:43 doorAnoniem
Hallo allemaal!,
Ik heb een beetje rare vraag als dat zou mogen.Ik zit namelijk helemaal
vast in een project waarmee ik bezig ben.Ik ben momenteel bezig om een
ping programma te schrijven.Die een icmp packet verstuurd en een reply
terug geeft.Ik ben zo ver gekomen dat die een echo request verstuurd maar
niks terug krijg.Het pakketje zelf ziet er goed uit op de andere pc waar ik
em analyzeer op de andere pc waar na die verstuurd is.Daar geeft die
weer "echo (ping) request".

En hier zit het probleem bij een normale ping geeft die automatisch "echo
(ping) request" en gelijk erachter aan "echo (ping) reply".Nu probeer ik
erachter te komen waar het probleem zit het kan namelijk niet in de
recvfrom zitten omdat het pc zelf geen request heeft terug gestuurd dus
moet er nog iets ontbreken in het packet zelf denk ik.

wat zeker goed is zijnd e velden type code en checksum.Dus kan het
alleen maar liggen aan de identifier sequence number en de data denk ik.

In de /usr/include/netinet/ip_icmp.h staat bij struct icmphdr.

struct
{
u_int16_t id;
u_int16 sequence;
}echo;

Dus denk dat hier het probleem in zit want bij een declaratie van echo.id=0;
en echo.sequence=0; geeft gcc weer :

ping.c.:23: error: 'echo'undelared (first use in this function)

Wanneer ik dan echo weer toevoeg aan pointer van icmphdr zoals bv
icp.echo.id=0; geeft gcc weer :

Ping.c:23: error: structure has no member named 'id'

Dus nu vraag ik me af hoe kan het het zo zijn dat een incompleet packet
toch als icmp echo request kan verzonden worden en de andere pc
herkent maar niks terug stuurd.En als het eventueel mogelijk is weet
iemand misschien hoe ik de id en sequence met echo kan aanroepen
zodat deze bij het packet icmphdr icp; hoord.