Перейти к содержимому

Фотография

Логсетевой активности


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1
chainyk

chainyk
  • Частый гость
  • 79 сообщений
Вопрос такой: мне нужно вести лог всех запросов с компа и записывать их в файл. Что-то мне подсказывает что это можно сделать с помощью функции PfMakeLog из IPHLPAPI. Но я не знаю как ею пользоватся. Кто знает как можно реадизовать это?
  • 0

#2
Массаракш

Массаракш
  • Свой человек
  • 912 сообщений
А можно поконкретнее?
  • 0

#3
chainyk

chainyk
  • Частый гость
  • 79 сообщений
Я имел в виду сетевые запросы,
я создаю интерфейс с помощью функции PfCreateInterface (из того же IPHLPAPI), в этой функции есть такой параметр - bUseLog, который я задаю в true. Далее нужно создать лог, как мне кажется при помощи функции pfmakelog, а вот что делать дальше не знаю, как получить информацию из этого лога?

Сообщение отредактировал chainyk: 04.07.2005, 10:26:22

  • 0

#4
fantomas

fantomas
  • Завсегдатай
  • 123 сообщений
Запрос к твоему компьютеру?
  • 0

#5
fantomas

fantomas
  • Завсегдатай
  • 123 сообщений
Если тебя интересует доступ к твоим файлам по локалке, взгляни на этот код.

unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, NetApi;

type
  TMonitorForm = class(TForm)
    lwResources: TListView;
    bnShow: TButton;
    bnKill: TButton;
    procedure bnShowClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure bnKillClick(Sender: TObject);
  private
    { Private declarations }
    bNT:Boolean;
    fHandleNT, fHandle9x : THandle;
  public
    { Public declarations }
  end;

var
  MonitorForm: TMonitorForm;

implementation

{$R *.dfm}

procedure TMonitorForm.bnShowClick(Sender: TObject);
var
 FileInfoNT: PFileInfo3Array;
 FileInfo9x: array [0..1024] of TFileInfo502;
 i, iTE, iRE: Integer;
begin
 lwResources.Items.Clear;

 if bNT then
  begin
   // для NT
   FileInfoNT := nil;
   if NetFileEnumNT(nil, nil, nil, 3, @FileInfoNT, DWORD(-1),
       @iRE, @iTE, nil)<>0 then
    exit;

   for i:=0 to iRE-1 do
    begin
     with lwResources.Items.Add do
      begin
        Caption := string(IntToStr(FileInfoNT^[i].fi3_id));
        SubItems.Add(FileInfoNT^[i].fi3_pathname);
        SubItems.Add(FileInfoNT^[i].fi3_username);
        SubItems.Add(IntToStr(FileInfoNT^[i].fi3_num_locks));
      end;
    end;
  end
 else
  begin
   // для Windows 9x
   if NetFileEnum(nil, nil, 50, @FileInfo9x, SizeOf(FileInfo9x),
       @iRE, @iTE)<> 0 then
     exit;

   for i:=0 to iRE-1 do
    begin
     with lwResources.Items.Add do
      begin
        Caption := string(IntToStr(FileInfo9x[i].fi502_id));
        SubItems.Add(FileInfo9x[i].fi502_pathname);
        SubItems.Add(FileInfo9x[i].fi502_username);
      end;
    end;
 end;
end;

procedure TMonitorForm.FormShow(Sender: TObject);
var
 ver: TOSVersionInfo;
begin
 ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
 GetVersionEx(Ver);
 case Ver.dwPlatformId of
  VER_PLATFORM_WIN32_NT       : bNT := True;
  VER_PLATFORM_WIN32_WINDOWS  : bNT := False;
  VER_PLATFORM_WIN32s         : bNT := False
 end;

 if bNT then
  begin
   fHandleNT := LoadLibrary('NETAPI32.DLL');
   @NetFileEnumNT := GetProcAddress(fHandleNT, 'NetFileEnum');
   @NetFileCloseNT := GetProcAddress(fHandleNT, 'NetSessionClose');
  end
 else
  begin
   fHandle9x := LoadLibrary('SVRAPI.DLL');
   @NetFileEnum := GetProcAddress(fHandle9x, 'NetFileEnum');
   @NetFileClose := GetProcAddress(fHandle9x, 'NetFileClose2');
  end;
end;

procedure TMonitorForm.bnKillClick(Sender: TObject);
begin
 if lwResources.Selected=nil then exit;

 if bNT then
  NetFileCloseNT(nil,StrToInt(lwResources.Selected.Caption))
 else
  NetFileClose(nil,StrToInt(lwResources.Selected.Caption));
end;

end.

Сообщение отредактировал fantomas: 06.07.2005, 16:56:19

  • 0

#6
chainyk

chainyk
  • Частый гость
  • 79 сообщений

Если тебя интересует доступ к твоим файлам по локалке, взгляни на этот код.

unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, NetApi;

type
  TMonitorForm = class(TForm)
    lwResources: TListView;
    bnShow: TButton;
    bnKill: TButton;
    procedure bnShowClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure bnKillClick(Sender: TObject);
  private
    { Private declarations }
    bNT:Boolean;
    fHandleNT, fHandle9x : THandle;
  public
    { Public declarations }
  end;

var
  MonitorForm: TMonitorForm;

implementation

{$R *.dfm}

procedure TMonitorForm.bnShowClick(Sender: TObject);
var
 FileInfoNT: PFileInfo3Array;
 FileInfo9x: array [0..1024] of TFileInfo502;
 i, iTE, iRE: Integer;
begin
 lwResources.Items.Clear;

 if bNT then
  begin
   // для NT
   FileInfoNT := nil;
   if NetFileEnumNT(nil, nil, nil, 3, @FileInfoNT, DWORD(-1),
       @iRE, @iTE, nil)<>0 then
    exit;

   for i:=0 to iRE-1 do
    begin
     with lwResources.Items.Add do
      begin
        Caption := string(IntToStr(FileInfoNT^[i].fi3_id));
        SubItems.Add(FileInfoNT^[i].fi3_pathname);
        SubItems.Add(FileInfoNT^[i].fi3_username);
        SubItems.Add(IntToStr(FileInfoNT^[i].fi3_num_locks));
      end;
    end;
  end
 else
  begin
   // для Windows 9x
   if NetFileEnum(nil, nil, 50, @FileInfo9x, SizeOf(FileInfo9x),
       @iRE, @iTE)<> 0 then
     exit;

   for i:=0 to iRE-1 do
    begin
     with lwResources.Items.Add do
      begin
        Caption := string(IntToStr(FileInfo9x[i].fi502_id));
        SubItems.Add(FileInfo9x[i].fi502_pathname);
        SubItems.Add(FileInfo9x[i].fi502_username);
      end;
    end;
 end;
end;

procedure TMonitorForm.FormShow(Sender: TObject);
var
 ver: TOSVersionInfo;
begin
 ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
 GetVersionEx(Ver);
 case Ver.dwPlatformId of
  VER_PLATFORM_WIN32_NT       : bNT := True;
  VER_PLATFORM_WIN32_WINDOWS  : bNT := False;
  VER_PLATFORM_WIN32s         : bNT := False
 end;

 if bNT then
  begin
   fHandleNT := LoadLibrary('NETAPI32.DLL');
   @NetFileEnumNT := GetProcAddress(fHandleNT, 'NetFileEnum');
   @NetFileCloseNT := GetProcAddress(fHandleNT, 'NetSessionClose');
  end
 else
  begin
   fHandle9x := LoadLibrary('SVRAPI.DLL');
   @NetFileEnum := GetProcAddress(fHandle9x, 'NetFileEnum');
   @NetFileClose := GetProcAddress(fHandle9x, 'NetFileClose2');
  end;
end;

procedure TMonitorForm.bnKillClick(Sender: TObject);
begin
 if lwResources.Selected=nil then exit;

 if bNT then
  NetFileCloseNT(nil,StrToInt(lwResources.Selected.Caption))
 else
  NetFileClose(nil,StrToInt(lwResources.Selected.Caption));
end;

end.

Ну это не вовсем то что надо, но тоже пригодилось.
  • 0

#7
fantomas

fantomas
  • Завсегдатай
  • 123 сообщений

Если тебя интересует доступ к твоим файлам по локалке, взгляни на этот код.

unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, NetApi;

type
  TMonitorForm = class(TForm)
    lwResources: TListView;
    bnShow: TButton;
    bnKill: TButton;
    procedure bnShowClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure bnKillClick(Sender: TObject);
  private
    { Private declarations }
    bNT:Boolean;
    fHandleNT, fHandle9x : THandle;
  public
    { Public declarations }
  end;

var
  MonitorForm: TMonitorForm;

implementation

{$R *.dfm}

procedure TMonitorForm.bnShowClick(Sender: TObject);
var
 FileInfoNT: PFileInfo3Array;
 FileInfo9x: array [0..1024] of TFileInfo502;
 i, iTE, iRE: Integer;
begin
 lwResources.Items.Clear;

 if bNT then
  begin
   // для NT
   FileInfoNT := nil;
   if NetFileEnumNT(nil, nil, nil, 3, @FileInfoNT, DWORD(-1),
       @iRE, @iTE, nil)<>0 then
    exit;

   for i:=0 to iRE-1 do
    begin
     with lwResources.Items.Add do
      begin
        Caption := string(IntToStr(FileInfoNT^[i].fi3_id));
        SubItems.Add(FileInfoNT^[i].fi3_pathname);
        SubItems.Add(FileInfoNT^[i].fi3_username);
        SubItems.Add(IntToStr(FileInfoNT^[i].fi3_num_locks));
      end;
    end;
  end
 else
  begin
   // для Windows 9x
   if NetFileEnum(nil, nil, 50, @FileInfo9x, SizeOf(FileInfo9x),
       @iRE, @iTE)<> 0 then
     exit;

   for i:=0 to iRE-1 do
    begin
     with lwResources.Items.Add do
      begin
        Caption := string(IntToStr(FileInfo9x[i].fi502_id));
        SubItems.Add(FileInfo9x[i].fi502_pathname);
        SubItems.Add(FileInfo9x[i].fi502_username);
      end;
    end;
 end;
end;

procedure TMonitorForm.FormShow(Sender: TObject);
var
 ver: TOSVersionInfo;
begin
 ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
 GetVersionEx(Ver);
 case Ver.dwPlatformId of
  VER_PLATFORM_WIN32_NT       : bNT := True;
  VER_PLATFORM_WIN32_WINDOWS  : bNT := False;
  VER_PLATFORM_WIN32s         : bNT := False
 end;

 if bNT then
  begin
   fHandleNT := LoadLibrary('NETAPI32.DLL');
   @NetFileEnumNT := GetProcAddress(fHandleNT, 'NetFileEnum');
   @NetFileCloseNT := GetProcAddress(fHandleNT, 'NetSessionClose');
  end
 else
  begin
   fHandle9x := LoadLibrary('SVRAPI.DLL');
   @NetFileEnum := GetProcAddress(fHandle9x, 'NetFileEnum');
   @NetFileClose := GetProcAddress(fHandle9x, 'NetFileClose2');
  end;
end;

procedure TMonitorForm.bnKillClick(Sender: TObject);
begin
 if lwResources.Selected=nil then exit;

 if bNT then
  NetFileCloseNT(nil,StrToInt(lwResources.Selected.Caption))
 else
  NetFileClose(nil,StrToInt(lwResources.Selected.Caption));
end;

end.

Ну это не вовсем то что надо, но тоже пригодилось.

Очень рад...
  • 0

#8
28E

28E
  • Завсегдатай
  • 101 сообщений

Если тебя интересует доступ к твоим файлам по локалке, взгляни на этот код.

unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, NetApi;

type
  TMonitorForm = class(TForm)
    lwResources: TListView;
    bnShow: TButton;
    bnKill: TButton;
    procedure bnShowClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure bnKillClick(Sender: TObject);
  private
    { Private declarations }
    bNT:Boolean;
    fHandleNT, fHandle9x : THandle;
  public
    { Public declarations }
  end;

var
  MonitorForm: TMonitorForm;

implementation

{$R *.dfm}

procedure TMonitorForm.bnShowClick(Sender: TObject);
var
 FileInfoNT: PFileInfo3Array;
 FileInfo9x: array [0..1024] of TFileInfo502;
 i, iTE, iRE: Integer;
begin
 lwResources.Items.Clear;

 if bNT then
  begin
   // для NT
   FileInfoNT := nil;
   if NetFileEnumNT(nil, nil, nil, 3, @FileInfoNT, DWORD(-1),
       @iRE, @iTE, nil)<>0 then
    exit;

   for i:=0 to iRE-1 do
    begin
     with lwResources.Items.Add do
      begin
        Caption := string(IntToStr(FileInfoNT^[i].fi3_id));
        SubItems.Add(FileInfoNT^[i].fi3_pathname);
        SubItems.Add(FileInfoNT^[i].fi3_username);
        SubItems.Add(IntToStr(FileInfoNT^[i].fi3_num_locks));
      end;
    end;
  end
 else
  begin
   // для Windows 9x
   if NetFileEnum(nil, nil, 50, @FileInfo9x, SizeOf(FileInfo9x),
       @iRE, @iTE)<> 0 then
     exit;

   for i:=0 to iRE-1 do
    begin
     with lwResources.Items.Add do
      begin
        Caption := string(IntToStr(FileInfo9x[i].fi502_id));
        SubItems.Add(FileInfo9x[i].fi502_pathname);
        SubItems.Add(FileInfo9x[i].fi502_username);
      end;
    end;
 end;
end;

procedure TMonitorForm.FormShow(Sender: TObject);
var
 ver: TOSVersionInfo;
begin
 ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
 GetVersionEx(Ver);
 case Ver.dwPlatformId of
  VER_PLATFORM_WIN32_NT       : bNT := True;
  VER_PLATFORM_WIN32_WINDOWS  : bNT := False;
  VER_PLATFORM_WIN32s         : bNT := False
 end;

 if bNT then
  begin
   fHandleNT := LoadLibrary('NETAPI32.DLL');
   @NetFileEnumNT := GetProcAddress(fHandleNT, 'NetFileEnum');
   @NetFileCloseNT := GetProcAddress(fHandleNT, 'NetSessionClose');
  end
 else
  begin
   fHandle9x := LoadLibrary('SVRAPI.DLL');
   @NetFileEnum := GetProcAddress(fHandle9x, 'NetFileEnum');
   @NetFileClose := GetProcAddress(fHandle9x, 'NetFileClose2');
  end;
end;

procedure TMonitorForm.bnKillClick(Sender: TObject);
begin
 if lwResources.Selected=nil then exit;

 if bNT then
  NetFileCloseNT(nil,StrToInt(lwResources.Selected.Caption))
 else
  NetFileClose(nil,StrToInt(lwResources.Selected.Caption));
end;

end.

Ну это не вовсем то что надо, но тоже пригодилось.

Очень рад...

вот только не надо так много цитировать :(
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.