Ile będzie trwało wykonanie tej intrukcji?

0

oto ta intrukcja

 var I, J, K : Integer;
Address : String;
begin
  for I := 1 to 255 do
    for J := 1 to 255 do
      for K := 1 to 255 do
        begin
          Address := '5.' + IntToStr(I) + '.' + IntToStr(J) + '.' + IntToStr(K);
          ClientSocket1.Address := Address;
          try  
            ClientSocket1.Active := True;
          finally
          end;
        end;

A ma to działać tak, że programik próbuje łączyć się z każdą kombinacją numeru IP, ale coś czuję że będzie to długo trwalo. Mam rację?
Jeżeli ktoś ma inny pomysł na to jak znaleźć wszystkie komputery w sieci lokalnej, to chętnie posłucham

0

Zakładając, że każda próba połączenia się będzie trwała około 3s więc w sumie będzie to trwało (255^3)*3 sekund czyli około 576 dób ale sądzę, że ten czas będzie znacznie dłuższy.

0

poszukaj kodów źródłowych skanerów sieciowych.

Możesz też to wsadzić w wątki, z czego przyśpieszy ci działanie.

0

A ja jeszcze mam taki pytanie odnoście socketów. Jak połącze kilka klientów do jednego servera, to jak server ma wysłać stringa do wszystkich klientów?

0

Przy połączeniu zapisuj sockety do tablicy a jeśli będziesz chciał wysłać stringa wystarczy użyć pętli.

0

Lepiej wrzuć to do listy ThreadList, a całość skanuj przez wątki. Jeden wątek 1 adres. Zobacz jak działa AngryScan, IPScan - też skanuje w wątkach. przeskanowanie jednej podsieci trochę trwa, a co dopiero skanowanie całej sieci.

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