Here's the trivial fix for compiling under Linux:
3,4d2
< /* trivial fix for linux by crw */
<
68c66
< struct icmphdr *icp; /* icmp header */
---
> struct icmp *icp; /* icmp header */
78c76
< icp = ( struct icmphdr *)( packet + IP_SIZE );
---
> icp = ( struct icmp *)( packet + IP_SIZE );
97,99c95,97
< icp->type = 13;
< icp->code = 0;
< icp->checksum = 0;
---
> icp->icmp_type = 13;
> icp->icmp_code = 0;
> icp->icmp_cksum = 0;
116c114
< icp->checksum = in_cksum( ( u_short *)( packet + IP_SIZE ),
---
> icp->icmp_cksum = in_cksum( ( u_short *)( packet + IP_SIZE ),