home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibdemo3.zip / SOURCE.DAT / SOURCE / RTL / INTERNET.PAS < prev    next >
Pascal/Delphi Source File  |  1997-08-11  |  4KB  |  154 lines

  1. UNIT Internet;
  2.  
  3. INTERFACE
  4.  
  5. /*
  6.  * Protocols
  7.  */
  8. CONST
  9.      IPPROTO_IP              =0;               /* dummy for IP */
  10.      IPPROTO_ICMP            =1;               /* control message protocol */
  11.      IPPROTO_GGP             =3;               /* gateway^2 (deprecated) */
  12.      IPPROTO_TCP             =6;               /* tcp */
  13.      IPPROTO_EGP             =8;               /* exterior gateway protocol */
  14.      IPPROTO_PUP             =12;              /* pup */
  15.      IPPROTO_UDP             =17;              /* user datagram protocol */
  16.      IPPROTO_IDP             =22;              /* xns idp */
  17.  
  18.      IPPROTO_RAW             =255;             /* raw IP packet */
  19.      IPPROTO_MAX             =256;
  20.  
  21.  
  22. /*
  23.  * Ports < IPPORT_RESERVED are reserved for
  24.  * privileged processes (e.g. root).
  25.  * Ports > IPPORT_USERRESERVED are reserved
  26.  * for servers, not necessarily privileged.
  27.  */
  28. CONST
  29.     IPPORT_RESERVED         =1024;
  30.     IPPORT_USERRESERVED     =5000;
  31.  
  32. /*
  33.  * Link numbers
  34.  */
  35. CONST
  36.     IMPLINK_IP              =155;
  37.     IMPLINK_LOWEXPER        =156;
  38.     IMPLINK_HIGHEXPER       =158;
  39.  
  40. /*
  41.  * Internet address (a structure for historical reasons)
  42.  */
  43. TYPE
  44.     in_addr=RECORD
  45.                   s_addr:LONGWORD;
  46.     END;
  47.  
  48. /*
  49.  * Definitions of bits in internet address integers.
  50.  * On subnets, the decomposition of addresses to host and net parts
  51.  * is done according to subnet mask, not the masks here.
  52.  */
  53. CONST
  54.      IN_CLASSA_NET           =$ff000000;
  55.      IN_CLASSA_NSHIFT        =24;
  56.      IN_CLASSA_HOST          =$00ffffff;
  57.      IN_CLASSA_MAX           =128;
  58.  
  59.      IN_CLASSB_NET           =$ffff0000;
  60.      IN_CLASSB_NSHIFT        =16;
  61.      IN_CLASSB_HOST          =$0000ffff;
  62.      IN_CLASSB_MAX           =65536;
  63.  
  64.      IN_CLASSC_NET           =$ffffff00;
  65.      IN_CLASSC_NSHIFT        =8;
  66.      IN_CLASSC_HOST          =$000000ff;
  67.  
  68.      INADDR_ANY              =$00000000;
  69.      INADDR_BROADCAST        =$ffffffff;     /* must be masked */
  70.      INADDR_NONE             =$ffffffff;     /* -1 return */
  71.  
  72.      IN_LOOPBACKNET          =127;           /* official! */
  73.  
  74. /*
  75.  * Socket address, internet style.
  76.  */
  77. TYPE
  78.     sockaddr_in=RECORD
  79.                       sin_family:INTEGER;
  80.                       sin_port:WORD;
  81.                       sin_addr:in_addr;
  82.                       sin_zero:CSTRING[7];
  83.     END;
  84.  
  85. /*
  86.  * Options for use with [gs]etsockopt at the IP level.
  87.  */
  88. CONST
  89.      IP_OPTIONS      =1;               /* set/get IP per-packet options */
  90.  
  91. IMPORTS
  92. FUNCTION inet_addr(CONST c:CSTRING):LONGWORD;
  93.          APIENTRY; 'TCP32DLL' index 5;
  94. FUNCTION inet_makeaddr(p1,p2:LONGWORD):LONGWORD; {in_addr}
  95.          APIENTRY; 'TCP32DLL' index 8;
  96. FUNCTION inet_network(VAR c:CSTRING):LONGWORD;
  97.          APIENTRY; 'TCP32DLL' index 9;
  98. FUNCTION inet_ntoa(ia:LONGWORD{in_addr}):LONGWORD;
  99.          APIENTRY; 'TCP32DLL' index 10;
  100. FUNCTION inet_lnaof(ia:LONGWORD{in_addr}):LONGWORD;
  101.          APIENTRY; 'TCP32DLL' index 6;
  102. FUNCTION inet_netof(ia:LONGWORD{in_addr}):LONGWORD;
  103.          APIENTRY; 'TCP32DLL' index 7;
  104. END;
  105.  
  106. FUNCTION IN_CLASSA(i:LONGINT):BOOLEAN;
  107. FUNCTION IN_CLASSB(i:LONGINT):BOOLEAN;
  108. FUNCTION IN_CLASSC(i:LONGINT):BOOLEAN;
  109. FUNCTION IN_CLASSD(i:LONGINT):BOOLEAN;
  110. FUNCTION IN_MULTICAST(i:LONGINT):BOOLEAN;
  111. FUNCTION IN_EXPERIMENTAL(i:LONGINT):BOOLEAN;
  112. FUNCTION IN_BADCLASS(i:LONGINT):BOOLEAN;
  113.  
  114. IMPLEMENTATION
  115.  
  116. FUNCTION IN_CLASSA(i:LONGINT):BOOLEAN;
  117. BEGIN
  118.      result:=(((i) AND $80000000) = 0);
  119. END;
  120.  
  121. FUNCTION IN_CLASSB(i:LONGINT):BOOLEAN;
  122. BEGIN
  123.      result:=(((i) AND $c0000000) = $80000000);
  124. END;
  125.  
  126. FUNCTION IN_CLASSC(i:LONGINT):BOOLEAN;
  127. BEGIN
  128.      result:=(((i) AND $e0000000) = $c0000000);
  129. END;
  130.  
  131. FUNCTION IN_CLASSD(i:LONGINT):BOOLEAN;
  132. BEGIN
  133.      result:=(((i) AND $f0000000) = $e0000000);
  134. END;
  135.  
  136. FUNCTION IN_MULTICAST(i:LONGINT):BOOLEAN;
  137. BEGIN
  138.      result:=IN_CLASSD(i);
  139. END;
  140.  
  141. FUNCTION IN_EXPERIMENTAL(i:LONGINT):BOOLEAN;
  142. BEGIN
  143.      result:=(((i) AND $e0000000) = $e0000000);
  144. END;
  145.  
  146. FUNCTION IN_BADCLASS(i:LONGINT):BOOLEAN;
  147. BEGIN
  148.      result:=(((i) AND $f0000000) = $f0000000);
  149. END;
  150.  
  151.  
  152. BEGIN
  153. END.
  154.