Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Сетевые компоненты в Delphi7   Найти похожие ветки 

 
*partizan* ©   (2004-01-27 19:28) [0]

Приветсвую Вас Мастера!
Ситуация следующая:
Дипломка: "Сетевой сканер"
Собираюсь писать на Delphi7, но как глянул сколько там сетевых компонентов, так на месте и растерялся...
Сетевых прог мы раньше не писали...
Подскажите хотя бы для начала, какие компоненты нужно использовать для скана сетки и какой с кем взаимодейсвует?
Буду очень признателен...


 
mntek ©   (2004-01-28 01:39) [1]

что нужно? - какие компы в сети? -тогда смотри:
if GetSystemMetrics(SM_NETWORK) and $01 = $01 then  
   ShowMessage("Computer is attached to a network!")  
 else  
   ShowMessage("Computer is not attached to a network!");  
end;  -подключен ли комп к сетке;

unit FindComp;  
interface  
uses  
Windows, Classes;  
function FindComputers: DWORD;  
var  
Computers: TStringList;  
implementation  
uses  
SysUtils;  
const  
MaxEntries = 250;  
function FindComputers: DWORD;  
var  
EnumWorkGroupHandle, EnumComputerHandle: THandle;  
EnumError: DWORD;  
Network: TNetResource;  
WorkGroupEntries, ComputerEntries: DWORD;  
EnumWorkGroupBuffer, EnumComputerBuffer: array[1..MaxEntries] of TNetResource;  
EnumBufferLength: DWORD;  
I, J: DWORD;  
begin  
Computers.Clear;  
FillChar(Network, SizeOf(Network), 0);  
with Network do  
begin  
  dwScope := RESOURCE_GLOBALNET;  
  dwType := RESOURCETYPE_ANY;  
  dwUsage := RESOURCEUSAGE_CONTAINER;  
end;  
EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @Network, EnumWorkGroupHandle);  
if EnumError = NO_ERROR then  
begin  
  WorkGroupEntries := MaxEntries;  
  EnumBufferLength := SizeOf(EnumWorkGroupBuffer);  
  EnumError := WNetEnumResource(EnumWorkGroupHandle, WorkGroupEntries, @EnumWorkGroupBuffer, EnumBufferLength);  
  if EnumError = NO_ERROR then  
  begin  
    for I := 1 to WorkGroupEntries do  
    begin  
      EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @EnumWorkGroupBuffer[I], EnumComputerHandle);  
      if EnumError = NO_ERROR then  
      begin  
        ComputerEntries := MaxEntries;  
        EnumBufferLength := SizeOf(EnumComputerBuffer);  
        EnumError := WNetEnumResource(EnumComputerHandle, ComputerEntries, @EnumComputerBuffer, EnumBufferLength);  
        if EnumError = NO_ERROR then  
          for J := 1 to ComputerEntries do  
            Computers.Add(Copy(EnumComputerBuffer[J].lpRemoteName, 3, Length(EnumComputerBuffer[J].lpRemoteName) - 2));  
        WNetCloseEnum(EnumComputerHandle);  
      end;  
    end;  
  end;  
  WNetCloseEnum(EnumWorkGroupHandle);  
end;  
if EnumError = ERROR_NO_MORE_ITEMS then  
  EnumError := NO_ERROR;  
Result := EnumError;  
end;  
initialization  
Computers := TStringList.Create;  
finalization  
Computers.Free;  
end. - ищет все компы в сети;


 
Erazzer   (2004-01-28 01:52) [2]

Используй Indy - это ОДНОЗНАЧНО ;)))
На Indy ты легко межешь сделать многопоточный сканер, т.к. инди само (или сама) по себе поддерживет много поточность, и вообще я ссчитаю, что Indy это мощное средство, я на нём даже proxy сервер сделал!


 
mntek ©   (2004-01-28 01:54) [3]

тогда уж лучше com+ или вообще .NET:))


 
Erazzer   (2004-01-28 01:59) [4]

Тогда уж лучше FreeBSD ;)))


 
mntek ©   (2004-01-28 02:00) [5]

вообще да:))И не delphi явно:))



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

Форум: "Сети";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.053 c
3-1077690358
Jedu
2004-02-25 09:25
2004.04.04
Возникла проблема с IBClientDataSet.......


6-1075054663
MadGhost
2004-01-25 21:17
2004.04.04
что значат флаги в TCP? ?????


4-1074679500
Sergey SP
2004-01-21 13:05
2004.04.04
Вставить текст в контрол


4-1074633009
tigrix
2004-01-21 00:10
2004.04.04
FOCUS!


1-1079361777
RomeoGolf
2004-03-15 17:42
2004.04.04
Canvas.ClipRect





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский