Sorry typo. Change
> struct ping_header_t {
> unsigned char version : 8;
> unsigned char version : 8;
> unsigned short length;
> unsigned int seq;
> }
to:
struct ping_header_t {
unsigned char version : 8;
unsigned char hops : 8;
unsigned short length;
unsigned int seq;
}