Számítógépek keresése a hálózaton

Mint látható kereső algoritmus nagyon egyszerű, de ez a módszer viszonylag lassú, persze minden attól függ, hogy mekkora a helyi hálózaton. És most beszéljünk az összetevő, amellyel dolgozunk. Ez az összetevő, mint korábban említettük része Indy található, és a könyvtár fül - IndyClients. ahogy nevezik - TIdIcmpClient. Ez a komponens biztosítja számunkra csak egy ilyen lehetőséget, mint egy ping egyetlen host. Mert mi a probléma, mi biztosan illeszkedik. Amire szükségünk van, hogy ping minden olyan fogadó, illetve a gép nevét, akkor a csomag mérete, ami küldünk a fogadó, valamint annak szükségességét, hogy port és a timeout.

Mi tehát a mi meg a gépnevet, majd timeout. hány megálló csomagokat küld, akkor használja a Ping módszer küldünk a csomagot, ha meg kell adni a csomag mérete (nem kötelező), és a Caption (cím) a kirakati ezredmásodpercben mennyiért mi csomag mérete 32 byte küldtünk a gazda. Következő lépésként válassza ki a komponens TIdIcmpClient. Ezután lépjen az esemény listáját az alkatrész, és válassza ki OnReply eseményt. Ezután a rendezvény írni a következő kódot:

Mit csinálunk itt, csak meglétét vendéglátóink, ha létezik, akkor hozzá a listához, ha nem, akkor nem csinál semmit, általában ha nincs fogadó, a fogadó AReplyStatus.FromIpAddress típusú 0.0.0.0.

De a program. amelyben keresni számítógépek a hálózaton, sok, főleg a Windows

Forrás cikkeket itt letöltheti

felhasználások
Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika, vezérlők, Forms,
Dialógusok, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
IdIcmpClient, StdCtrls;

típus
TForm1 = osztály (TForm)
btn1: TButton;
lst1: TListBox;
idcmpclnt1: TIdIcmpClient;
eljárás btn1Click (Sender: TObject);
eljárás idcmpclnt1Reply (ASender: TComponent;
const AReplyStatus: TReplyStatus);
magán

nyilvános

végén;

var
Form1: TForm1;

eljárás TForm1.btn1Click (Sender: TObject);
kezdődik
idcmpclnt1.Host:='176.194.204.175 „;
idcmpclnt1.ReceiveTimeout: = 100;
idcmpclnt1.Ping ('32 „);
Caption: = IntToStr (idcmpclnt1.ReplyStatus.MsRoundTripTime)
végén;

eljárás TForm1.idcmpclnt1Reply (ASender: TComponent;
const AReplyStatus: TReplyStatus);
kezdődik
megpróbál
ha idcmpclnt1.Host = AReplyStatus.FromIpAddress majd lst1.Items.Add (AReplyStatus.FromIpAddress);
kivéve
az e: Kivétel do
végén;

Mennyibe kerül ez nem működik?

Kapcsolódó cikkek