Форум: "Сети";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
ВнизИмена 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c