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

Вниз

Сканер сети   Найти похожие ветки 

 
Ron   (2004-02-23 12:09) [0]

народ, может кто знает как сделать сканер сети средствами WinSock через массив? А то у меня что-то не получается... :(


 
Verg ©   (2004-02-23 13:25) [1]

Не мучайся, не стОит... Возьми готовый http://www.oxid.it/


 
Verg ©   (2004-02-23 13:27) [2]

.... особенно если

> средствами WinSock через массив


:))


 
Anatoly Podgoretsky ©   (2004-02-23 13:32) [3]

Объявить массив и все рахличие по сравнению с переменной это использование идекса для обращения
Вместо V образаться так V[i]
Но может рано заниматься сканерами, а потратить усилия на изучения основ Паскаля, в том числе и массивы.


 
ALeX.B. ©   (2004-02-27 11:57) [4]

Тебе надо алгоритм перебора айпишников? Если да то смотри
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Ping, IdBaseComponent, IdComponent, IdRawBase,
 IdRawClient, IdIcmpClient;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   Button1: TButton;
   startip: TEdit;
   endip: TEdit;
   IdIcmpClient1: TIdIcmpClient;
   procedure Button1Click(Sender: TObject);
   procedure IdIcmpClient1Reply(ASender: TComponent;
     const AReplyStatus: TReplyStatus);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
Form1: TForm1;
var x, y, t: array [1..4] of integer; i: byte;
implementation

{$R *.dfm}
procedure scannet(a, b: byte);

begin
for i := a to b do
begin
Form1.IdIcmpClient1.Host := InttoStr(x[1]) + "." + InttoStr(x[2]) + "." + InttoStr(x[3]) + "." + InttoStr(i);
Form1.IdIcmpClient1.Ping();
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
label noscan;  var ipos,stip1,stip2,stip3,stip4,eip1,eip2,eip3,eip4,i1,i2,i3,i4,j,k:integer;
 stip,eip:string;
begin
Memo1.Lines.Clear;
stip := startip.Text;
ipos := pos(".",stip);
stip1 := strtoint(copy(stip,1,ipos-1));
delete(stip,1,ipos);
ipos := pos(".",stip);
stip2:= strtoint(copy(stip,1,ipos-1));
delete(stip,1,ipos);
ipos:=pos(".",stip);
stip3:= strtoint(copy(stip,1,ipos-1));
delete(stip,1,ipos);
ipos:=pos(".",stip);
stip4:= strtoint(copy(stip,1,ipos+3));
eip:=endip.Text;
ipos:=pos(".",eip);
eip1 := strtoint(copy(eip,1,ipos-1));
delete(eip,1,ipos);
ipos:=pos(".",eip);
eip2:= strtoint(copy(eip,1,ipos-1));
delete(eip,1,ipos);
ipos:=pos(".",eip);
eip3:= strtoint(copy(eip,1,ipos-1));
delete(eip,1,ipos);
ipos:=pos(".",eip);
eip4:= strtoint(copy(eip,1,ipos+3));
x[1] := stip1;x[2] := stip2;x[3] := stip3;x[4] := stip4;
y[1] := eip1;y[2] := eip2;y[3] := eip3;y[4] := eip4;
if ((x[1] = y[1]) and (x[2] = y[2]) and (x[3] = y[3]))
   then
     begin
       scannet(x[4], y[4]);
       goto noscan;
     end
   else scannet(x[4], 255);
 inc(x[3]);
 t[2] := y[2];
 t[3] := y[3];
 t[4] := y[4];
 y[2] := 255;
 y[3] := 255;
 y[4] := 255;
 while (x[1] <= y[1]) do
   begin
    if (x[1] = y[1]) then y[2] := t[2];
     while (x[2] <= y[2]) do
       begin
         if ((x[1] = y[1]) and (x[2] = t[2])) then y[3] := t[3] - 1;
         while (x[3] <= y[3]) do
           begin
             scannet(0, 255);
             if (x[3] = y[3]) then break else inc(x[3]);
           end;
         x[3] := 0;
         if (x[2] = y[2]) then break else inc(x[2]);
       end;
     x[2] := 0;
     if (x[1] = y[1]) then break else inc(x[1]);
   end;
 x[2] := t[2];
 x[3] := t[3];
 scannet(0,t[4]);
noscan:
end;
procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
 const AReplyStatus: TReplyStatus);
begin
if(IdIcmpClient1.ReplyData <> "") then
begin
Form1.Memo1.Lines.Add(InttoStr(x[1]) + "." + InttoStr(x[2]) + "." + InttoStr(x[3]) + "." + InttoStr(i));asm nop end;
IdIcmpClient1.CleanupInstance;
end;
end;
end.

Разберайся. Я сам тоже с этой бадягой долго парился.


 
Verg ©   (2004-02-27 12:06) [5]


> ALeX.B. ©   (27.02.04 11:57) [4]


Шо это было?


> asm nop end;


Это что?


 
Polevi ©   (2004-02-27 12:29) [6]

>Verg ©   (27.02.04 12:06) [5]
зато через массив :)



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

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

Наверх





Память: 0.47 MB
Время: 0.041 c
14-1080679041
real_dimedrol
2004-03-31 00:37
2004.04.25
Транслятор интерпретатор


3-1080560695
ikondakov
2004-03-29 15:44
2004.04.25
Как вместе с программой запихнуть BDE???


14-1080937601
Knight
2004-04-03 00:26
2004.04.25
А можно из самой программы узнать сколько памяти она занимает?


1-1081341912
Diver
2004-04-07 16:45
2004.04.25
Работа с мат. функциями


4-1076838918
Viktor Kushnir
2004-02-15 12:55
2004.04.25
Как загрузить через CreateProcess ярлык (*.lnk)





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