unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,umain, StdCtrls, Winsock,COMMCTRL,COMCTRLS,mystr;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
    {gbIP: TGroupBox;
    gbInfo: TGroupBox;}
{    memInfo: TMemo; }
    Font:hfont;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  TmpCompName, TmpProvider, TmpGroup, TmpUser, TmpServer,TmpShares: String;
  Time: Cardinal;
  IPStr: String;
begin
// Для ввода IP адреса будем использовать класс WC_IPADDRESS
// именно для этого и предназначеный...
  // Зададим первоначальный IP адрес (это адрес моей машины)
  IP := MAKEIPADDRESS(StrToInt(cNFi(1,Edit1.Text,'.')),StrToInt(cNFi(2,Edit1.Text,'.')),StrToInt(cNFi(3,Edit1.Text,'.')),StrToInt(cNFi(4,Edit1.Text,'.')));
  // Инициализируем дополнительные классы библиотеки ComCtl32.dll.
  InitCommonControl(ICC_INTERNET_CLASSES);

  // Узнаем, что за адрес введен... (он появится в IP)
  SendMessage(edIP, IPM_GETADDRESS, 0, Longint(PDWORD(@IP)));

  // Преобразуем эту абракадабру в нормальный "Dotted IP"
  IPStr := IntToStr(FIRST_IPADDRESS(IP));
  IPStr := IPStr + '.' + IntToStr(SECOND_IPADDRESS(IP));
  IPStr := IPStr + '.' + IntToStr(THIRD_IPADDRESS(IP));
  IPStr := IPStr + '.' + IntToStr(FOURTH_IPADDRESS(IP));

  // Ну и начнем работать...
  with  MEMO1.Lines do                        // Вывод информации
  begin
    Clear;                                              // Очищаем экран
    Refresh;                                            // Ну и обновляем...
                                                        // (при вызове первой функции может не обновиться)

    Add(RES_IP + IPStr);                                // Выводим IP адрес
    TmpCompName := GetNameFromIP(IPStr);
    if TmpCompName = RES_UNKNOWN then Exit;
    Add(RES_CMP + TmpCompName);                         // Выводим имя компьютера
    TmpUser := GetUsers(IPStr);
    Add(RES_USR + TmpUser);                             // Выводим имя пользователя
    TmpProvider := GetProvider(TmpCompName);
    Add(RES_PROV + TmpProvider);               // Выводим провайдера
{    Add(RES_COM + GetComment(TmpCompName,
      TmpProvider)); }                                   // Выводим комментарий к ресурсу
  {  TmpGroup := GetDomain(TmpCompName, TmpProvider);
    Add(RES_DOM + TmpGroup); }                           // Выводим группу
    TmpServer := GetDomainServer(TmpGroup);
    if TmpServer <> '' then
    begin
      Add(RES_SER + TmpServer);                         // Выводим имя сервера
      Add(RES_GRP + GetGroups(TmpServer, TmpUser));     // Выводим группы домена в которые входит пользователь
    end;
    TmpShares:=GetShares(TmpCompName);
    if TmpShares<>'' then Add(RES_SHARES + TmpShares);  // Выводим список доступных ресурсов

    Add(RES_MAC + GetMacFromIP(IPStr));                 // Выводим МАС адрес
{    Add(RES_TIME + IntToStr(GetTickCount - Time));      // Сколько времени затрачено
    }
  end;
end;
end.
