Kompy w sieci

0

Jak znaleźć wszystkie kompy w sieci lokalnej z ich nazwami i IP?

0

spinguj adres bo np. u mnie jest tak:
10.0.20.xxx
to po prostu w petli pinguj każdy adres

0

a jak sie pinguje programowo??

Trzybobry!

  1. Potrzebujesz Indy http://www.indyproject.org/ lub ICS http://www.overbyte.be.
  2. FAQ
  3. Czytaj serwis

Ogolnie patrz na komponent PING (ICS) i TIdEcho (Indy).

To jest naprawde proste, wiec zalapiesz w mig.

Pozdrawiam [cya]!!

0

Ale ja na przykład nie znam numerów IP ani sieci ani innych kompów i chciałbym (na przykład) tylko nazwy.

0

jeżeli jesteś pewien że prog jest uruchamiany na kompie w sieci lokalnej, który jest on-line to masz adres np 197.10.255.17; wytnij z niego znaki po ostatniej kropce i po kolei od 1 do $FF pinguj je. przykładowy IP: 197.10.255.1, 197.10.255.2... itp

0

A nie szybciej i lepiej tak:

procedure EnumNetShares(List: TStrings);

procedure EnumFunc(NetResource: PNetResource);
var
Enum: THandle;
Count, BufferSize: DWORD;
Buffer: array[0..16384 div SizeOf(TNetResource)] of TNetResource;
i: Integer;
begin
if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, NetResource,
Enum) = NO_ERROR then
try
Count := $FFFFFFFF;
BufferSize := SizeOf(Buffer);
while WNetEnumResource(Enum, Count, @Buffer, BufferSize) = NO_ERROR do
for i := 0 to Count - 1 do
begin
// if Buffer[i].dwDisplayType = RESOURCEDISPLAYTYPE_SHARE then
List.Add(Buffer[i].lpRemoteName);
if (Buffer[i].dwUsage and RESOURCEUSAGE_CONTAINER) > 0 then
EnumFunc(@Buffer[i])
end;
finally
WNetCloseEnum(Enum);
end;
end;

begin
EnumFunc(nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumNetShares(List.Items);
end;

Pozdrawiam
KeV

1 użytkowników online, w tym zalogowanych: 0, gości: 1