home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 February / Chip_2004-02_cd1.bin / zkuste / konfig / download / msic / Help / Int / MSI_Network.int < prev    next >
Text File  |  2003-08-26  |  6KB  |  139 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       MiTeC System Information Component              }
  4. {               Network Detection Part                  }
  5. {           version 8.3 for Delphi 5,6,7                }
  6. {                                                       }
  7. {       Copyright ⌐ 1997,2003 Michal Mutl               }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. {$INCLUDE MITEC_DEF.INC}
  12.  
  13. unit MSI_Network;
  14.  
  15. interface
  16.  
  17. uses
  18.   SysUtils, Windows, Classes, WinSock, MSI_Common, MiTeC_IpHlpAPI;
  19.  
  20. type
  21.   TWinsock = class(TPersistent)
  22.   private
  23.     FDesc: string;
  24.     FStat: string;
  25.     FMajVer: word;
  26.     FMinVer: word;
  27.   public
  28.     procedure GetInfo;
  29.   published
  30.     property Description: string read FDesc {$IFNDEF D6PLUS} write FDesc {$ENDIF} stored False;
  31.     property MajorVersion: word read FMajVer {$IFNDEF D6PLUS} write FMajVer {$ENDIF} stored False;
  32.     property MinorVersion: word read FMinVer {$IFNDEF D6PLUS} write FMinVer {$ENDIF} stored False;
  33.     property Status: string read FStat {$IFNDEF D6PLUS} write FStat {$ENDIF} stored False;
  34.   end;
  35.  
  36.   TAdapterType = (atOther, atEthernet, atTokenRing, atFDDI, atPPP, atLoopback, atSlip);
  37.  
  38.   PAdapter = ^TAdapter;
  39.   TAdapter = record
  40.     Name,
  41.     Address: string;
  42.     Typ: TAdapterType;
  43.     EnableDHCP,
  44.     HaveWINS: boolean;
  45.     IPAddress,
  46.     IPAddressMask,
  47.     Gateway_IPAddress,
  48.     Gateway_IPAddressMask,
  49.     DHCP_IPAddress,
  50.     DHCP_IPAddressMask,
  51.     PrimaryWINS_IPAddress,
  52.     PrimaryWINS_IPAddressMask,
  53.     SecondaryWINS_IPAddress,
  54.     SecondaryWINS_IPAddressMask: TStringList;
  55.   end;
  56.  
  57.   TNodeType = (ntUnknown, ntBroadcast, ntPeerToPeer, ntMixed, ntHybrid);
  58.  
  59.   TTCPIP = class(TPersistent)
  60.   private
  61.     FAdapters: TStringList;
  62.     FProxy: boolean;
  63.     FRouting: boolean;
  64.     FDNS: boolean;
  65.     FHost: string;
  66.     FDomain: string;
  67.     FDNSPrefix: string;
  68.     FDNSList: TStrings;
  69.     FDNSSuffix: TStrings;
  70.     FNode: TNodeType;
  71.     FDHCPScope: string;
  72.     FCount: Word;         
  73.  
  74.     procedure ClearList;
  75.     function GetAdapter(Index: Word): TAdapter;
  76.     function GetAdapterCount: Word;
  77.   public
  78.     constructor Create;
  79.     destructor Destroy; override;
  80.     procedure GetInfo;
  81.     procedure Report(var sl :TStringList; Standalone: Boolean = True); virtual;
  82.     function FindAdapter(AName: string): Integer;
  83.  
  84.     property Adapter[Index: Word]: TAdapter read GetAdapter;
  85.   published
  86.     property AdapterCount: Word read GetAdapterCount {$IFNDEF D6PLUS} write FCount {$ENDIF} stored False;
  87.     property HostName: string read FHost {$IFNDEF D6PLUS} write FHost {$ENDIF} stored False;
  88.     property DomainName: string read FDomain {$IFNDEF D6PLUS} write FDomain {$ENDIF} stored False;
  89.     property EnableProxy: boolean read FProxy {$IFNDEF D6PLUS} write FProxy {$ENDIF} stored False;
  90.     property EnableRouting: boolean read FRouting {$IFNDEF D6PLUS} write FRouting {$ENDIF} stored False;
  91.     property EnableDNS: boolean read FDNS {$IFNDEF D6PLUS} write FDNS {$ENDIF} stored False;
  92.     property PrimaryDNSSuffix: string read FDNSPrefix {$IFNDEF D6PLUS} write FDNSPrefix {$ENDIF} stored False;
  93.     property DHCPScopeName: string read FDHCPScope {$IFNDEF D6PLUS} write FDHCPScope {$ENDIF} stored False;
  94.     property DNSServers: TStrings read FDNSList {$IFNDEF D6PLUS} write FDNSList {$ENDIF} stored False;
  95.     property DNSSuffixes: TStrings read FDNSSuffix {$IFNDEF D6PLUS} write FDNSSuffix {$ENDIF} stored False;
  96.     property NodeType: TNodeType read FNode {$IFNDEF D6PLUS} write FNode {$ENDIF} stored False;
  97.   end;
  98.  
  99.   TNetwork = class(TPersistent)
  100.   private
  101.     FAdapter: TStrings;
  102.     FWinsock: TWinsock;
  103.     FIPAddress: TStrings;
  104.     FMACAddress: TStrings;
  105.     FCli: TStrings;
  106.     FServ: TStrings;
  107.     FProto: TStrings;
  108.     FNCAI: integer;
  109.     FMode: TExceptionMode;
  110.     FNetCard: string;
  111.     FTCPIP: TTCPIP;
  112.     function GetLocalIP :string;
  113.   public
  114.     constructor Create;
  115.     destructor Destroy; override;
  116.     procedure GetInfo;
  117.     procedure Report(var sl :TStringList; Standalone: Boolean = True); virtual;
  118.     property Networkcard: string read FNetCard;
  119.   published
  120.     property ExceptionMode: TExceptionMode read FMode write FMode;
  121.     property IPAddresses: TStrings read FIPAddress {$IFNDEF D6PLUS} write FIPAddress {$ENDIF} stored false;
  122.     property MACAddresses: TStrings read FMACAddress {$IFNDEF D6PLUS} write FMACAddress {$ENDIF} stored False;
  123.     property Adapters :TStrings read FAdapter {$IFNDEF D6PLUS} write FAdapter {$ENDIF} stored false;
  124.     property CardAdapterIndex: integer read FNCAI {$IFNDEF D6PLUS} write FNCAI {$ENDIF} stored False;
  125.     property Protocols :TStrings read FProto {$IFNDEF D6PLUS} write FProto {$ENDIF} stored False;
  126.     property Services :TStrings read FServ {$IFNDEF D6PLUS} write FServ {$ENDIF} stored False;
  127.     property Clients :TStrings read FCli {$IFNDEF D6PLUS} write FCli {$ENDIF} stored False;
  128.     property WinSock: TWinsock read FWinsock {$IFNDEF D6PLUS} write FWinsock {$ENDIF} stored false;
  129.     property TCPIP: TTCPIP read FTCPIP {$IFNDEF D6PLUS} write FTCPIP {$ENDIF} stored False;
  130.   end;
  131.  
  132. const
  133.   NodeTypes: array[TNodeType] of string = ('Unknown','Broadcast','Peer-To-Peer','Mixed','Hybrid');
  134.  
  135.   AdapterTypes: array[TAdapterType] of string = ('Other', 'Ethernet', 'Token Ring', 'FDDI', 'PPP', 'Loopback', 'Slip');
  136.  
  137. implementation
  138.  
  139.