| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | 
type   Picmphdr = ^icmphdr;   icmphdr = record        _type : u_int8_t;        code : u_int8_t;        checksum : u_int16_t;        un : record            case longint of               0 : ( echo : record                    id : u_int16_t;                    sequence : u_int16_t;                 end );               1 : ( gateway : u_int32_t );               2 : ( frag : record                    __unused : u_int16_t;                    mtu : u_int16_t;                 end );            end;     end;const   ICMP_ECHOREPLY = 0;   ICMP_DEST_UNREACH = 3;   ICMP_SOURCE_QUENCH = 4;   ICMP_REDIRECT = 5;   ICMP_ECHO = 8;   ICMP_TIME_EXCEEDED = 11;   ICMP_PARAMETERPROB = 12;   ICMP_TIMESTAMP = 13;   ICMP_TIMESTAMPREPLY = 14;   ICMP_INFO_REQUEST = 15;   ICMP_INFO_REPLY = 16;   ICMP_ADDRESS = 17;   ICMP_ADDRESSREPLY = 18;   NR_ICMP_TYPES = 18;   ICMP_NET_UNREACH = 0;   ICMP_HOST_UNREACH = 1;   ICMP_PROT_UNREACH = 2;   ICMP_PORT_UNREACH = 3;   ICMP_FRAG_NEEDED = 4;   ICMP_SR_FAILED = 5;   ICMP_NET_UNKNOWN = 6;   ICMP_HOST_UNKNOWN = 7;   ICMP_HOST_ISOLATED = 8;   ICMP_NET_ANO = 9;   ICMP_HOST_ANO = 10;   ICMP_NET_UNR_TOS = 11;   ICMP_HOST_UNR_TOS = 12;   ICMP_PKT_FILTERED = 13;   ICMP_PREC_VIOLATION = 14;   ICMP_PREC_CUTOFF = 15;   NR_ICMP_UNREACH = 15;   ICMP_REDIR_NET = 0;   ICMP_REDIR_HOST = 1;   ICMP_REDIR_NETTOS = 2;   ICMP_REDIR_HOSTTOS = 3;   ICMP_EXC_TTL = 0;   ICMP_EXC_FRAGTIME = 1;type   Picmp_ra_addr = ^icmp_ra_addr;   icmp_ra_addr = record        ira_addr : u_int32_t;        ira_preference : u_int32_t;     end;   Picmp = ^icmp;   icmp = record        icmp_type : u_int8_t;        icmp_code : u_int8_t;        icmp_cksum : u_int16_t;        icmp_hun : record            case longint of               0 : ( ih_pptr : u_char );               1 : ( ih_gwaddr : in_addr );               2 : ( ih_idseq : record                    icd_id : u_int16_t;                    icd_seq : u_int16_t;                 end );               3 : ( ih_void : u_int32_t );               4 : ( ih_pmtu : record                    ipm_void : u_int16_t;                    ipm_nextmtu : u_int16_t;                 end );               5 : ( ih_rtradv : record                    irt_num_addrs : u_int8_t;                    irt_wpa : u_int8_t;                    irt_lifetime : u_int16_t;                 end );            end;        icmp_dun : record            case longint of               0 : ( id_ts : record                    its_otime : u_int32_t;                    its_rtime : u_int32_t;                    its_ttime : u_int32_t;                 end );               1 : ( id_ip : record                    idi_ip : ip;                 end );               2 : ( id_radv : icmp_ra_addr );               3 : ( id_mask : u_int32_t );               4 : ( id_data : array[0..0] of u_int8_t );            end;     end;const   ICMP_MINLEN = 8;   ICMP_TSLEN = 8 + (3 * (sizeof(n_time)));   ICMP_MASKLEN = 12;   ICMP_ADVLENMIN = (8 + SizeOf(ip)+8);    const       ICMP_UNREACH = 3;       ICMP_SOURCEQUENCH = 4;       ICMP_ROUTERADVERT = 9;       ICMP_ROUTERSOLICIT = 10;       ICMP_TIMXCEED = 11;       ICMP_PARAMPROB = 12;       ICMP_TSTAMP = 13;       ICMP_TSTAMPREPLY = 14;       ICMP_IREQ = 15;       ICMP_IREQREPLY = 16;       ICMP_MASKREQ = 17;       ICMP_MASKREPLY = 18;       ICMP_MAXTYPE = 18;       ICMP_UNREACH_NET = 0;       ICMP_UNREACH_HOST = 1;       ICMP_UNREACH_PROTOCOL = 2;       ICMP_UNREACH_PORT = 3;       ICMP_UNREACH_NEEDFRAG = 4;       ICMP_UNREACH_SRCFAIL = 5;       ICMP_UNREACH_NET_UNKNOWN = 6;       ICMP_UNREACH_HOST_UNKNOWN = 7;       ICMP_UNREACH_ISOLATED = 8;       ICMP_UNREACH_NET_PROHIB = 9;       ICMP_UNREACH_HOST_PROHIB = 10;       ICMP_UNREACH_TOSNET = 11;       ICMP_UNREACH_TOSHOST = 12;       ICMP_UNREACH_FILTER_PROHIB = 13;       ICMP_UNREACH_HOST_PRECEDENCE = 14;       ICMP_UNREACH_PRECEDENCE_CUTOFF = 15;       ICMP_REDIRECT_NET = 0;       ICMP_REDIRECT_HOST = 1;       ICMP_REDIRECT_TOSNET = 2;       ICMP_REDIRECT_TOSHOST = 3;       ICMP_TIMXCEED_INTRANS = 0;       ICMP_TIMXCEED_REASS = 1;       ICMP_PARAMPROB_OPTABSENT = 1;function ICMP_ADVLEN(const p: icmp): cardinal;Function ICMP_INFOTYPE(_type: cardinal): boolean;{ ---------------------------------------------------------------------    Borland compatibility types  ---------------------------------------------------------------------}// Type
 |