#include <netinet/ip_icmp.h>And code:
struct icmphdr icmphdr
/* clear out the packet, and fill with contents. */
memset(&icmphdr, 0, sizeof(struct icmphdr));
icmphdr.type = ICMP_ECHO;
icmphdr.un.echo.sequence = 50; /* just some random number. */
icmphdr.un.echo.id = 48; /* just some random number. */
icmphdr.checksum =
in_cksum((unsigned short*)&icmphdr, sizeof(struct icmphdr));
Originally written by