На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> не работают исходники любого сканера с rad studio xe , не работают исходники любого сканера с rad studio xe
    продолжаются страности с rad studio xe whois не хотел работать но потом переписал прогу и всё заработало, но вот например пример любого сканера из интернета отказывается работать в ниже привидённом коде ругается на разные типы после исправления, в строке едита любые числа сбрасывает до 0.0.0.1 и всё другой диапазон вести невозможно. Кто то сталкивавлся с этой дельфи я менял раззличяные файлы winsock и winsock2 не помогло.

    ExpandedWrap disabled
      *==================================*)
      (* XScanner by XProger              *)
      (* mail: XProger@list.ru            *)
      (* site: http://XProger.mirgames.ru *)
      (*==================================*)
      unit Code;
       
      interface
       
      uses
        Windows, Messages, SysUtils, Classes, Controls, Forms,
        StdCtrls, ExtCtrls, winsock, AppEvnts, Buttons, Gauges, Spin;
       
      type
        TForm1 = class(TForm)
          Panel1: TPanel;
          Label1: TLabel;
          Edit1: TEdit;
          Label2: TLabel;
          SpeedButton1: TSpeedButton;
          ProgressBar1: TGauge;
          ListBox1: TListBox;
          SpinEdit1: TSpinEdit;
          SpinEdit2: TSpinEdit;
          Label3: TLabel;
          Label4: TLabel;
          procedure FormCreate(Sender: TObject);
          procedure FormDestroy(Sender: TObject);
          procedure ApplicationEvents1Message(var Msg: tagMSG;
            var Handled: Boolean);
          procedure SpeedButton1Click(Sender: TObject);
        end;
       
        TMyThread = class(TThread)
         protected
          procedure Execute; override;
        end;
       
        TFSocket = record
         sa: TSockAddr;
         FData: integer;
         TimeOut: integer;
        end;
       
      const
       MAX_PORTS=500;
       Ping=5000;
       
      var
        Form1: TForm1;
        FSocket: array [0..MAX_PORTS - 1] of TFSocket;
        FPort: WORD;
        FInfo: TWSADATA;
        FHost: integer;
        FPStart, FPEnd: WORD;
        SThread: TMyThread;
       
      implementation
       
      {$R *.dfm}
       
      procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
        var Handled: Boolean);
      var
       pSrvEnt:pServEnt;
       sPortDescription:String;
      begin
       if (Msg.message>=FPStart+WM_USER)
                                      and (Msg.message<=FPEnd+WM_USER)
       then
       if WSAGETSELECTERROR(Msg.lParam)=0
       then
        case WSAGETSELECTEVENT(msg.lParam) of
         FD_CONNECT:
            begin
             pSrvEnt := getservbyport(Msg.message - WM_USER,nil);
             if Assigned (pSrvEnt) then
              sPortDescription := 'service: ' + string(pSrvEnt^.s_name)
             else
              sPortDescription := '';
             ListBox1.Items.Add(IntToStr(ListBox1.Count+1)+
                              ') IP: '+inet_ntoa(FSocket[0].sa.sin_addr)+'  |  '+
                              'Port: '+intToStr(Msg.message - WM_USER) + '  |  ' +
                              sPortDescription);
             Application.ProcessMessages;
            end;
        end;
       Handled:=false;
      end;
       
       
      procedure TForm1.FormCreate(Sender: TObject);
      var
       i: integer;
      begin
       if WSAStartup(MAKEWORD(2, 0), FInfo)<>0
       then Halt;
       for i:=0 to MAX_PORTS-1 do
       with FSocket[i] do
        begin
         TimeOut := 0;
         FData := Socket(AF_INET, SOCK_STREAM, 0);
         if FData = SOCKET_ERROR
         then
          begin
           WSACleanup;
           Halt;
          end;
        end;
       Application.OnMessage:=Form1.ApplicationEvents1Message;
      end;
       
      procedure TForm1.FormDestroy(Sender: TObject);
      var
       i: integer;
      begin
       if SThread<>nil
       then
        begin
         SThread.Terminate;
         SThread.WaitFor;
         SThread:=nil;
        end;
       for i:=0 to MAX_PORTS-1 do
        CloseSocket(FSocket[i].FData);
       WSACleanup;
      end;
       
      procedure InitSockets;
      var
       i: integer;
      begin
       for i:=0 to MAX_PORTS-1 do
        with FSocket[i] do
         if (FPort>=FPEnd) or (SThread.Terminated)
         then break
         else
          if GetTickCount-TimeOut>PING
          then
           begin
            sa.sin_family:=AF_INET;
            sa.sin_addr.S_addr:=FHost;
            sa.sin_port:=htons(FPort);
            //
            WSAAsyncSelect(FData, Application.Handle, WM_USER+FPort, FD_CONNECT);
            connect(FData, FSocket[i].sa, SizeOf(FSocket[i].sa));
            TimeOut:=GetTickCount;
            inc(FPort);
            Form1.Label2.Caption:='Port: '+intToStr(FPort);
            Form1.ProgressBar1.Progress:=trunc(((FPort-FPStart)*100)/(FPEnd-FPStart));
            Application.ProcessMessages;
            //
            Sleep(PING div MAX_PORTS);
           end;
      end;
       
      procedure TMyThread.Execute;
      var
       i: integer;
       buf: in_addr;
      begin
       FPStart:=Form1.SpinEdit1.Value;
       FPEnd:=Form1.SpinEdit2.Value;
       FHost:=inet_addr(PChar(Form1.Edit1.Text));   вот тут ругается на разные типы ставлю PansiChar и работает, но повторю в значение адреса сканирования сбрасывает до 0.0.0.1 и всё.
       if (FPEnd<=FPStart)or (Form1.SpinEdit1.Value>65535) or
                                  (Form1.SpinEdit2.Value>65535)
       then FHost:=SOCKET_ERROR;
       if FHost=SOCKET_ERROR
       then
        begin
         if not Terminated
         then SThread:=nil;
         Form1.SpeedButton1.Caption:='Запуск';
         Exit;
        end;
       buf.S_addr:=FHost;
       Form1.Edit1.Text:=inet_ntoa(buf);
       Form1.ListBox1.Clear;
       FPort:=FPStart;
       for i:=0 to MAX_PORTS-1 do
        with FSocket[i] do
         begin
          TimeOut:=0;
          FData:=Socket(AF_INET, SOCK_STREAM, 0);
         end;
       //
       while not Terminated do
        begin
         InitSockets;
         if FPort>=FPEnd
         then break;
        end;
       //
       for i:=0 to MAX_PORTS-1 do
        CloseSocket(FSocket[i].FData);
       //
       if not Terminated
       then
        begin
         SThread:=nil;
         Form1.SpeedButton1.Caption:='Запуск';
        end;
      end;
       
      procedure TForm1.SpeedButton1Click(Sender: TObject);
      begin
       if SThread=nil
       then
        begin
         SThread:=TMyThread.Create(false);
         SpeedButton1.Caption:='Стоп';
        end
       else
        begin
         SThread.Terminate;
         SThread.WaitFor;
         SThread:=nil;
         SpeedButton1.Caption:='Запуск';
        end;
      end;
       
      end.
      что никто непробовал сканер под дельфой начина с xe и выше?
        ExpandedWrap disabled
          Fhost:=inet_addr(PAnsiChar(AnsiString(Form1.Edit1.Text));


        пользователь ками с винграда помог с решением код заработал.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0.0728 ]   [ 16 queries used ]   [ Generated: 25.08.26, 14:54 GMT ]