Sætte options i IP header
HejsaJeg sidder med et lille C program der skal smide pakker på et netværk med raw sockets under Linux. Jeg kunne dog godt tænke mig at få options feltet sat til timestamp (jf. http://www.networksorcery.com/enp/protocol/ip/option004.htm) i IPv4 headeren, men har lidt problemer med at gennemskue sammenhængen fra spec. til egentlig kode.
Koden til IP headeren er:
unsigned char *CreateIPHeader()
{
struct iphdr *ip_header;
ip_header = (struct iphdr *)malloc(sizeof(struct iphdr));
ip_header->version = 4;
ip_header->ihl = (sizeof(struct iphdr))/4 ;
ip_header->tos = 0;
ip_header->tot_len = htons(sizeof(struct iphdr));
ip_header->id = htons(10);
ip_header->frag_off = 0;
ip_header->ttl = 10;
ip_header->protocol = IPPROTO_TCP;
ip_header->check = 0; /* We will calculate the checksum later */
ip_header->saddr = inet_addr(SRC_IP);
ip_header->daddr = inet_addr(DST_IP);
//Her skal options ind?
// IP checksum :
ip_header->check = ComputeIpChecksum((unsigned char *)ip_header, ip_header->ihl*4);
return ((unsigned char *)ip_header);
}
Jeg har kigget lidt i /usr/include/linux/ip.h, og kan se der står en masse #define der har med options at gøre, men syns ikke det ligner noget man selv kan sætte fra programmet af?
pft
Mads