Const IPPROTO_IP = 0; IPPROTO_HOPOPTS = 0; IPPROTO_ICMP = 1; IPPROTO_IGMP = 2; IPPROTO_IPIP = 4; IPPROTO_TCP = 6; IPPROTO_EGP = 8; IPPROTO_PUP = 12; IPPROTO_UDP = 17; IPPROTO_IDP = 22; IPPROTO_TP = 29; IPPROTO_IPV6 = 41; IPPROTO_ROUTING = 43; IPPROTO_FRAGMENT = 44; IPPROTO_RSVP = 46; IPPROTO_GRE = 47; IPPROTO_ESP = 50; IPPROTO_AH = 51; IPPROTO_ICMPV6 = 58; IPPROTO_NONE = 59; IPPROTO_DSTOPTS = 60; IPPROTO_MTP = 92; IPPROTO_ENCAP = 98; IPPROTO_PIM = 103; IPPROTO_COMP = 108; IPPROTO_RAW = 255; IPPROTO_MAX = 256; type Pin_port_t = ^in_port_t; in_port_t = uint16_t; Const IPPORT_ECHO = 7; IPPORT_DISCARD = 9; IPPORT_SYSTAT = 11; IPPORT_DAYTIME = 13; IPPORT_NETSTAT = 15; IPPORT_FTP = 21; IPPORT_TELNET = 23; IPPORT_SMTP = 25; IPPORT_TIMESERVER = 37; IPPORT_NAMESERVER = 42; IPPORT_WHOIS = 43; IPPORT_MTP = 57; IPPORT_TFTP = 69; IPPORT_RJE = 77; IPPORT_FINGER = 79; IPPORT_TTYLINK = 87; IPPORT_SUPDUP = 95; IPPORT_EXECSERVER = 512; IPPORT_LOGINSERVER = 513; IPPORT_CMDSERVER = 514; IPPORT_EFSSERVER = 520; IPPORT_BIFFUDP = 512; IPPORT_WHOSERVER = 513; IPPORT_ROUTESERVER = 520; IPPORT_RESERVED = 1024; IPPORT_USERRESERVED = 5000; type Pin_addr_t = ^in_addr_t; in_addr_t = uint32_t; Pin_addr = ^in_addr; { in_addr = record s_addr : in_addr_t; end; } const IN_CLASSA_NET = $ff000000; IN_CLASSA_NSHIFT = 24; IN_CLASSA_HOST = $ffffffff and ( not (IN_CLASSA_NET)); IN_CLASSA_MAX = 128; const IN_CLASSB_NET = $ffff0000; IN_CLASSB_NSHIFT = 16; IN_CLASSB_HOST = $ffffffff and ( not (IN_CLASSB_NET)); IN_CLASSB_MAX = 65536; const IN_CLASSC_NET = $ffffff00; IN_CLASSC_NSHIFT = 8; IN_CLASSC_HOST = $ffffffff and ( not (IN_CLASSC_NET)); Function IN_CLASSA(a: in_addr_t): Boolean; Function IN_CLASSB(a: in_addr_t): Boolean; Function IN_CLASSC(a: in_addr_t): Boolean; Function IN_CLASSD(a: in_addr_t): Boolean; Function IN_MULTICAST(a: in_addr_t): Boolean; Function IN_EXPERIMENTAL(a: in_addr_t): Boolean; Function IN_BADCLASS(a: in_addr_t): Boolean; const IN_LOOPBACKNET = 127; INADDR_LOOPBACK = in_addr_t($7f000001); INADDR_UNSPEC_GROUP = in_addr_t($e0000000); INADDR_ALLHOSTS_GROUP = in_addr_t($e0000001); INADDR_ALLRTRS_GROUP = in_addr_t($0000002); INADDR_MAX_LOCAL_GROUP = in_addr_t($e00000ff); type Pin6_addr = ^in6_addr; in6_addr = record case longint of 0 : ( in6_u : record case longint of 0 : ( u6_addr8 : array[0..15] of uint8_t ); 1 : ( u6_addr16 : array[0..7] of uint16_t ); 2 : ( u6_addr32 : array[0..3] of uint32_t ); end;); 1 : (case Integer of 0: (s6_addr: packed array [0..16-1] of __uint8_t); 1: (s6_addr16: packed array [0..8-1] of uint16_t); 2: (s6_addr32: packed array [0..4-1] of uint32_t); ); end; Const IN6ADDR_ANY_INIT : in6_addr = ( in6_u : (U6_addr8 : (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 )) ); IN6ADDR_LOOPBACK_INIT : in6_addr = ( in6_u : (U6_addr8 : ( 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 ))); const INET_ADDRSTRLEN = 16; INET6_ADDRSTRLEN = 46; Type Psockaddr_in6 = ^sockaddr_in6; sockaddr_in6 = record sin6_family: sa_family_t; sin6_port : in_port_t; sin6_flowinfo : uint32_t; sin6_addr : in6_addr; sin6_scope_id : uint32_t; end; Pipv6_mreq = ^ipv6_mreq; ipv6_mreq = record ipv6mr_multiaddr : in6_addr; ipv6mr_interface : dword; end; type in6_pktinfo = {packed} record ipi6_addr: in6_addr; { src/dst IPv6 address } ipi6_ifindex: Cardinal; { send/recv interface index } end; Function IN6_IS_ADDR_UNSPECIFIED(const a: in6_addr): Boolean; Function IN6_IS_ADDR_LOOPBACK(const a: in6_addr): Boolean; Function IN6_IS_ADDR_MULTICAST(const a: in6_addr): Boolean; Function IN6_IS_ADDR_LINKLOCAL(const a: in6_addr): Boolean; Function IN6_IS_ADDR_SITELOCAL(const a: in6_addr): Boolean; Function IN6_IS_ADDR_V4MAPPED(const a: in6_addr): Boolean; Function IN6_IS_ADDR_V4COMPAT(const a: in6_addr): Boolean; Function IN6_ARE_ADDR_EQUAL(const a, b: in6_addr): Boolean; Function IN6_IS_ADDR_MC_NODELOCAL(const a: in6_addr): Boolean; Function IN6_IS_ADDR_MC_LINKLOCAL(const a: in6_addr): Boolean; Function IN6_IS_ADDR_MC_SITELOCAL(const a: in6_addr): Boolean; Function IN6_IS_ADDR_MC_ORGLOCAL(const a: in6_addr): Boolean; Function IN6_IS_ADDR_MC_GLOBAL(const a: in6_addr): Boolean; function ntohl(__netlong:uint32_t):uint32_t;cdecl;external clib name 'ntohl'; function ntohs(__netshort:uint16_t):uint16_t;cdecl;external clib name 'ntohs'; function htonl(__hostlong:uint32_t):uint32_t;cdecl;external clib name 'htonl'; function htons(__hostshort:uint16_t):uint16_t;cdecl;external clib name 'htons'; function bindresvport6(__sockfd:longint; __sock_in:Psockaddr_in6):longint;cdecl;external clib name 'bindresvport6'; function bindresvport(__sockfd:longint; __sock_in:Psockaddr_in):longint;cdecl;external clib name 'bindresvport';