Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.57 MB
Время: 0.036 c
6-99218
delphi4fun
2002-11-01 06:53
2002.12.30
Имена shared ресурсов на компьютере.


1-99144
cruncher
2002-12-16 16:31
2002.12.30
Контекстное меню


6-99231
Slym
2002-11-01 06:30
2002.12.30
IP2MAC


3-98957
Kurt
2002-12-09 13:09
2002.12.30
MuliSeselct на Гриде в True. Как мне определять что


1-99074
кват
2002-12-19 15:47
2002.12.30
TMybutton от Twincontrol - непонятки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский