Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неясность по функции Connect, Подключение к порту 21 
:(
    Опции темы
bublik
  Дата 1.8.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.8.2006

Репутация: нет
Всего: нет



Помогите! Может кто знает?

Делаю FTP сканнер, задаю диапазон IP адресов.

По циклу подключаюсь к IP адресу (порт 21) функция Connect дает положительный
результат т.е. ноль хотя IP адрес не существует вообще, странно если ставлю порт
например 900 по тому же адресу то соответственно - ошибка т.е. не ноль.

В чем дело может чего не понимаю.   smile 
PM MAIL   Вверх
Snowy
Дата 2.8.2006, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(bublik @  1.8.2006,  20:21 Найти цитируемый пост)
В чем дело может чего не понимаю. 
Ты делаешь что-то не так!
Если то, что ты делаешь неправильно, ты сделаешь правильно - то всё обязательно заработает!

Добавлено @ 09:58 
ЗЫ. Откуда мы знаем, что у тебя не так?!
Ты ж код не показываешь...
PM MAIL   Вверх
bublik
Дата 5.8.2006, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.8.2006

Репутация: нет
Всего: нет



Цитата(Snowy @ 2.8.2006,  09:58)
Цитата(bublik @  1.8.2006,  20:21 Найти цитируемый пост)
В чем дело может чего не понимаю. 
Ты делаешь что-то не так!
Если то, что ты делаешь неправильно, ты сделаешь правильно - то всё обязательно заработает!

Добавлено @ 09:58 
ЗЫ. Откуда мы знаем, что у тебя не так?!
Ты ж код не показываешь...

Привожу код.....


Код

unit ThreadUnit;

interface

uses
  Classes,WinSock2,Windows,Dialogs;

type
  TScanThread = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;

var
  Info:TWSADATA;
  Sckt:TSocket;
  AddrSock:TSockAddrIn;
  FtpScanThr:TScanThread;

implementation

uses IPdaip, MainUnit;

{*** Функция проверки на анонимный вход на FTP ***}
function VerifyAnonymEnter(IP:DWORD):BOOLEAN;stdcall;
var
buff:array [0..200] of char;
s:string;
begin
//Очистить буфер
ZeroMemory(@Buff,SizeOf(Buff));
//Принять приветствие сервера FTP
if recv(Sckt,Buff,SizeOF(Buff),0)=SOCKET_ERROR then
 begin
  Result:=False;
  exit;
 end;
//Очистить буфер
ZeroMemory(@Buff,SizeOf(Buff));
//Послать имя пользователя серверу
s:='USER Anonymous'+#13+#10;
//Скопировать команду в буфер
CopyMemory(@Buff,PChar(s),Length(s));
//Послать имя пользователя серверу FTP
Send(Sckt,Buff,Length(Buff),0);
//Очистить буфер
ZeroMemory(@Buff,SizeOf(Buff));
//Принять ответ сервера
recv(Sckt,Buff,SizeOF(Buff),0);
//Очистить буфер
ZeroMemory(@Buff,SizeOf(Buff));
//Послать адрес почты в качестве пароля
s:='PASS [email protected]'+#13+#10;
//Скопировать команду в буфер
CopyMemory(@Buff,PChar(s),Length(s));
//Послать имя пользователя серверу
Send(Sckt,Buff,Length(Buff),0);
//Очистить буфер
ZeroMemory(@Buff,SizeOf(Buff));
//Принять ответ сервера
recv(Sckt,Buff,SizeOF(Buff),0);
Result:=true;
end;

{*** функция инициализации WinSock ***}
function InitWinSock:boolean;stdcall;
begin
ZeroMemory(@Info,SizeOf(Info));
//Заполнить структуру интерфейса сокета
If WSAStartup(MAKEWORD(2,0),Info)<> 0 then
 begin
  MessageBox(MainFrm.Handle,'Ошибка функции WSAStartup!','Сообщение',
             MB_ICONERROR+MB_OK);
  Result:=False;
  exit;
 end;

Result:=True;
end;


{*** Функция соединения по IP ***}
function FtpConnect:BOOLEAN;stdcall;
var
i:cardinal;
sz:integer;
begin
for i:=0 to CountIP-1 do
 begin
  InitWinSock;
  //Создать сокет
  Sckt:=Socket(PF_INET,SOCK_STREAM,IPPROTO_IP);
   If  Sckt=INVALID_SOCKET then
    begin
     MessageBox(MainFrm.Handle,'Ошибка функции Socket!','Сообщение',
                MB_ICONERROR+MB_OK);
     Result:=False;
     exit;
    end;
  ZeroMemory(@AddrSock,SizeOf(AddrSock));
  //Заполнить структуру адреса сокета
  AddrSock.sin_family:=PF_INET;
  AddrSock.sin_port:=htons(21); //стандартный порт FTP
  AddrSock.sin_addr.S_addr:=CountIPScan[i];
  sz:= SizeOf(AddrSock);

  if Connect(Sckt,@AddrSock,sz)=0 then
   begin
     if VerifyAnonymEnter(CountIPScan[i]) then
       begin
         MainFrm.ScanFtpTree.Items.Add(nil,CountIPScanStr[i]+
                          ' Анонимный вход на FTP разрешен');
       end;
   end
  else
   begin
    MainFrm.ScanFtpTree.Items.Add(nil,CountIPScanStr[i]+' no find FTP');
   end;

   CloseSocket(Sckt);
   WSACleanup();
 end;
Result:=true;
end;

procedure TScanThread.Execute;
begin
 //InitWinSock;
 //repeat
  FtpConnect;
 //until Terminated;
end;

end.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0849 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.