Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.30;
Скачать: CL | DM;

Вниз

Имена shared ресурсов на компьютере.   Найти похожие ветки 

 
delphi4fun   (2002-11-01 06:53) [0]

Как обойти локалку и вытянуть имена всех машин знаю. Как обойти структуру \\machine\share_name\*.* тоже знаю.
Не знаю как по имени машины получить список shares. Научите?


 
Mischka ©   (2002-11-01 14:17) [1]


uses
Winsock;

var
NetResources: array[0..200]of TNetResource;
ResourceCount: integer;

function enumResourcesIn(Workgroup: string): boolean;
var
EnumHandle: THandle;
WorkgroupRS: TNetResource;
BufSize: Cardinal;
Entries: Cardinal;
Rest: Cardinal;
begin
ResourceCount:=0;
Workgroup:=Workgroup+#0;
FillChar(WorkgroupRS, SizeOf(WorkgroupRS), 0);
with WorkgroupRS do begin
dwScope:=RESOURCE_GLOBALNET;
dwType:=RESOURCETYPE_ANY;
dwDisplayType:=RESOURCEDISPLAYTYPE_DOMAIN;
dwUsage:=RESOURCEUSAGE_CONTAINER;
lpRemoteName:=@Workgroup[1];
end;
WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @WorkgroupRS, EnumHandle);
Entries:=200;
BufSize:=SizeOf(NetResources);
Rest:=WNetEnumResource(EnumHandle, Entries, @NetResources[0], BufSize);
if (Rest=NO_ERROR) and (Entries>0) then Result:=true else Result:=false;
ResourceCount:=Entries;
WNetCloseEnum(EnumHandle);
end;


Короче, передаешь в параметр Workgroup имя машины e.g. "\\AdminMashine" или "\\254.194.90.103" и функция запихивает в массив NetResources все расшаренные ресурсы. Количество записей в массиве см. в переменной ResourceCount. При условии, что функция вернула true.
Вобщем, там разберешься.


 
Mischka ©   (2002-11-01 14:19) [2]

> 2 delphi4fun
А вот ты мне ответь, будь другом, как ты обходишь ВСЮ локалку и вытягиваешь ВСЕ имена машин? WNetEnumResource многих машин просто не хочет видеть.


 
Dimadan   (2002-11-01 17:36) [3]

Вот процедурка ....... она вытягивает всю инфу о доменах..и станциях...
procedure SubServEnum;
var Servername:PWideChar;
Level,EntriesRead,Totalentries:Cardinal;
Bufptr:PSERVER_INFO_100;
Resume_handle,i,Servertype:DWORD;
begin
Level:=100;
ServerName:=NIL;
EntriesRead:=0;
Totalentries:=0;
Resume_Handle:=0;
Servertype:=см ниже;
NetServerEnum(ServerName,Level,@Bufptr,Cardinal(-1),@EntriesRead,@Totalentries,Servertype,Dom,@Resume_Handle);
for i:=0 to Totalentries-1 do
begin
ListBox.Items.Add(bufptr.sv100_name);
inc(bufptr);
end;
FreeMem(Dom);
end;

// маски Servertype
SV_TYPE_WORKSTATION= $00000001; // All LAN Manager workstations
SV_TYPE_SERVER = $00000002; // All LAN Manager servers
SV_TYPE_SQLSERVER = $00000004; // Any server running with Microsoft SQL Server
SV_TYPE_DOMAIN_CTRL= $00000008; // Primary domain controller
SV_TYPE_DOMAIN_BAKCTRL= $00000010; //Backup domain controller
SV_TYPE_TIMESOURCE= $00000020; //Server running the Timesource service
SV_TYPE_AFP= $00000040; //Apple File Protocol servers
SV_TYPE_NOVELL= $00000080; // Novell servers
SV_TYPE_DOMAIN_MEMBER= $00000100; //LAN Manager DomainMember
SV_TYPE_LOCAL_LIST_ONLY = $40000000; // Servers maintained by the browser. See the following Remarks section.
SV_TYPE_PRINT= $00000200; // Server sharing print queue
SV_TYPE_DIALIN= $00000400; // Server running dial-in service
SV_TYPE_XENIX_SERVER = $00000800; // Xenix server
SV_TYPE_MFPN= $00004000; //Microsoft File and Print for Netware
SV_TYPE_NT= $00001000; //Windows NT (either Workstation or Server)
SV_TYPE_WFW= $00002000; //Server running Windows for Workgroups
SV_TYPE_SERVER_NT = $00008000; // Windows NT Non-DC server
SV_TYPE_POTENTIAL_BROWSER=$00010000; //Server that can run the Browser service
SV_TYPE_BACKUP_BROWSER = $00020000; //Server running a Browser service as backup
SV_TYPE_MASTER_BROWSER = $00040000; //Server running the master Browser service
SV_TYPE_DOMAIN_MASTER = $00080000; //Server running the domain master Browser
SV_TYPE_DOMAIN_ENUM = $80000000; //Primary Domain
SV_TYPE_WINDOWS = $00400000; //Windows 95 or later
SV_TYPE_ALL = $FFFFFFFF; //All servers


 
delphi4fun   (2002-11-02 16:17) [4]

Dimadan

[Error] Unit1.pas(44): Undeclared identifier: "PSERVER_INFO_100"
[Error] Unit1.pas(53): Undeclared identifier: "NetServerEnum"
[Error] Unit1.pas(53): Undeclared identifier: "Dom"
[Error] Unit1.pas(56): ")" expected but identifier "sv100_name" found
[Error] Unit1.pas(59): Declaration expected but identifier "FreeMem" found
[Error] Unit1.pas(60): "." expected but ";" found

Короче WinSock я включил, но не помогло...


 
delphi4fun   (2002-11-02 16:57) [5]

2Mischka:
Спасибо! Работает...
Но вот прабл.. я ошибался что могу обойти удаленный ресурс =( Может кто-нибудь кинет процедуру обхода файловой системы по имени шары =)



Страницы: 1 вся ветка

Текущий архив: 2002.12.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
6-99225
Cowboy
2002-11-01 10:19
2002.12.30
Delphi 7 и сохранение инет страниц


1-99057
}|{ozik
2002-12-19 13:25
2002.12.30
Запись CDR


4-99396
wandp
2002-11-14 04:49
2002.12.30
Sleep в canvas e


6-99228
xnick
2002-11-04 09:52
2002.12.30
Pipe


14-99305
Дмитрий К.К.
2002-12-08 22:16
2002.12.30
Рональдо разыгрался