Archief - De topics van lang geleden

Ping program

04-01-2007, 10:43 door Anoniem, 8 reacties
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.
Reacties (8)
04-01-2007, 10:51 door Anoniem
Wat is er mis met ping.exe in Windows?
04-01-2007, 11:46 door Anoniem
Wat is er mis met ping.exe in Windows?

Niks en gebruik het vaak het is alleen dat ik wil weten wat er gebeurd als ik
een ping verstuur.
04-01-2007, 11:56 door SirDice
Ik ben zo ver gekomen dat die een echo reply verstuurd maar niks terug krijg.
Verkeerde volgorde ;)

Je verstuurt een echo request en krijgt een echo reply terug.
04-01-2007, 12:07 door Anoniem
Je verstuurt een echo request en krijgt een echo reply terug.

Sorry dat was een schrijf foutje had moeten zijn echo request zo staat die
ook ingesteld bij icp.type=ICMP_ECHO;

ps.Heb het gelijk ff verranderd was nog al slordig foutje :D thx voor je oplettendheid.
04-01-2007, 13:48 door Anoniem
Door Koekie
Wat is er mis met ping.exe in Windows?

Niks en gebruik het vaak het is alleen dat ik wil weten wat
er gebeurd als ik
een ping verstuur.

Je kan toch ook gewoon capturen wat er gebeurt als je een
ping doet? Via Ethereal bijv?
04-01-2007, 14:50 door Anoniem
Je kan toch ook gewoon capturen wat er gebeurt als je een
ping doet? Via Ethereal bijv?

Dat doe ik ook om te controleren of het packet goed geschreven is:
Als ik het het ping programma uit voer geeft die met:

linux#tcpdump icmp

07:33:24.2001508 170.0.2 -] 127.0.0.1: icmp : echo request (DF)

Maar als ik nu een gewone ping verstuur geeft die wel een reply terug.

07:33:24.7305508 170.0.2 -] 127.0.0.1: icmp : echo request (DF)
07:33:24.7305513 170.0.1 -] 127.0.0.2: icmp : echo reply (DF)

Wanneer ik dan die twee packetjes vergelijk met ethereal lijkt alsof het
identifer veld wel goed is ingesteld maar de checksum en de sequence
number niet.Want de sequence bij het packet blijft op 0x000 staan.En het
sequence nr verranderd ook niet (zoals bv 0x001 ,0x002, 0x003 etc) omdat
deze steeds op 0x00bffbf blijft staan.En er is geen data bij het goeie
packet staat data(56 bytes) en bij het packet wat ik zelf geschreven heb is
het hele veld weg gelaten.
04-01-2007, 16:31 door Anoniem
Ooit gehoord van localhost?

127.0.0.1 is niet handig om te gebruiken.
04-01-2007, 17:38 door Anoniem
127.0.0.1 is niet handig om te gebruiken.

Dat gebruik ik ook niet was maar een voorbeeld om me ip te verbergen...
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.