Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: CL | DM;

Вниз

открыт ли 21 80 порт на удал...   Найти похожие ветки 

 
Renald   (2004-05-13 01:30) [0]

Есть ИП (10.33.22.х) нужно проверить открыт ли 21 или 80 порт
чтоб понять что унего стоят FTP и HTTP server
обычными компонен делфи


 
Rouse_ ©   (2004-05-13 09:09) [1]

Соелдиняйся с портом, посылай ему что нибудь - жди ответ - анализируй...


 
Renald   (2004-05-13 12:16) [2]

каким компонентом?
TPowersock \ TNMSMTP \ TNMEcho ?

может из сканера выдрать что нибудь?
Function CheckUrl(url:string):boolean;
var
hSession, hfile, hRequest: hInternet;
dwindex,dwcodelen :dword;
dwcode:array[1..20] of char;
res : pchar;
begin
 if pos("http://",lowercase(url))=0 then
    url := "http://"+url;
 Result := false;
 hSession := InternetOpen("InetURL:/1.0",
      INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0);
 if assigned(hsession) then
   begin
     hfile := InternetOpenUrl(
          hsession,
          pchar(url),
          nil,
          0,
          INTERNET_FLAG_RELOAD,
          0);
     dwIndex  := 0;
     dwCodeLen := 10;
     HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE,
             @dwcode, dwcodeLen, dwIndex);
     res := pchar(@dwcode);
     result:= (res ="200") or (res ="302");
     if assigned(hfile) then
       InternetCloseHandle(hfile);
     InternetCloseHandle(hsession);
   end;
 
end;

ps.TimeOut := spinedit5.Value;
ps.Host := edit1.text;
portno:=spinedit1.Value;
ps.Port := spinedit1.Value;
ps.Connect;
end;
-
var
 i:integer;
begin
 powersock1.Host := edit4.Text ;
 powersock1.Port := spinedit3.Value ;
 if not powersock1.Connected then powersock1.Connect;
 gauge1.MaxValue := spinedit4.value;
 for i:=1 to spinedit4.Value do
 begin
   statusbar1.SimpleText := "Sending "+inttostr(i)+ "message(s)";
   powersock1.Write(richedit2.Lines.Text );
   gauge1.Progress := i;
 end;
 powersock1.Disconnect ;
 gauge1.Progress :=0;
end;
-
 i:integer;
begin
 gauge2.MaxValue := spinedit6.Value +1;
 gauge2.MinValue := 0;
 nmsmtp1.Host := edit5.Text;
 nmsmtp1.Port := 25;
 nmsmtp1.UserID := edit6.Text ;
 if not nmsmtp1.Connected then nmsmtp1.Connect;
 nmsmtp1.PostMessage.FromAddress := edit8.Text ;
 nmsmtp1.PostMessage.FromName := edit7.Text ;
 nmsmtp1.PostMessage.ToAddress.Clear ;
 nmsmtp1.PostMessage.ToAddress.Add(edit10.text);
 nmsmtp1.PostMessage.Subject := edit11.Text ;
 nmsmtp1.PostMessage.Body.Assign(richedit3.lines);
 for i:=1 to spinedit6.Value do
 begin
   if not nmsmtp1.Connected then nmsmtp1.Connect;
   nmsmtp1.PostMessage.FromAddress := edit8.Text ;
   nmsmtp1.PostMessage.FromName := edit7.Text ;
   nmsmtp1.PostMessage.ToAddress.Clear ;
   nmsmtp1.PostMessage.ToAddress.Add(edit10.text);
   nmsmtp1.PostMessage.Subject := edit11.Text ;
   nmsmtp1.PostMessage.Body.Assign(richedit3.lines);
   nmsmtp1.SendMail;
   gauge2.Progress := i;
 end;
 nmsmtp1.Disconnect ;
 gauge1.Progress := 0;
end;
procedure TForm1.SpeedButton8Click(Sender: TObject);
begin
 NMEcho1.ReportLevel := Status_Basic;
 NMEcho1.TimeOut := 20000;
 NMEcho1.Host := Edit14.Text;
 NMEcho1.Port := StrToInt(Edit15.Text);
 NMEcho1.Connect;
end;

statusbar1.SimpleText := "Scanning interrupt";
richedit1.Lines.Add (timetostr(time)+" - Scanning interrupt");

portno:=spinedit2.value+1;

label son,endson;
begin
if portno > spinedit2.Value then goto son else
statusbar1.simpletext:="Scanning port : "+inttostr(portno);
ps.Disconnect;
portno:=portno+1;
ps.port:=portno;
if scan then ps.Connect;
goto endson;
son:
statusbar1.SimpleText := "Scanning complete";
richedit1.Lines.Add (timetostr(time)+" - Scanning complete");
endson:

label son,endson;

if portno > spinedit2.Value then goto son else
ps.disconnect;
richedit1.Lines.Add (timetostr(time)+" - Connect on port "+inttostr(portno));
portno:=portno+1;
ps.port:=portno;
if scan then ps.Connect;
goto endson;
son:

richedit1.Lines.Add (timetostr(time)+" - Scanning complete");
endson:
end;

procedure TForm1.SpeedButton16Click(Sender: TObject);
begin
activeports1.update;
end;


 
panov ©   (2004-05-13 13:16) [3]

TClientSocket


 
Renald   (2004-05-13 14:42) [4]

пробывал
TClientSocket =PS

PS.port=21;
ps.host="antonov";

try
PS.open
except
end;

настрой компонента
client -ctNonlocking
service - нет

в обработчике Connect
PS.close;
//--------------------------------
выдает мессагу Asynchrous socket error 10061 !!?
и SEH непомогает
задание не имени а ИПа - тоже самое
другие порты-тоже,
хотя известно что машина есть и порт открыт

Может стороний компонент есть спецальный


 
Renald   (2004-05-13 14:48) [5]

TClientSocket = PS

делаю
PS.port=21
ps.host="nosov";
try
ps.open;
except
end;

настр компонента
client-ctNonlocking
service -

обработчик connect
Ps.close;

выдает массагу
Asyncronus socket error 10061,
SEH не помогает,что не правельно?
вместо имени -прописка ИПа так же
delphi4


 
Digitman ©   (2004-05-13 15:12) [6]


> SEH не помогает


поможет, если режим будет ctBlocking


 
Renald   (2004-05-13 17:22) [7]

спасибо попробую


 
Renald   (2004-05-15 01:42) [8]

Что то не пашет так,перешол на низкий,
код на ладони,но неработает,через снифер
вижу запросы идут по заданному удал адресу,
но не порта 21 , а  порт 0.
Вчем же дело если A.sin_port:=htons(port); ?

D:WSAData;
 S:TSocket;
 A:TSockAddr;
const = 21;
port

 { Если WSAStartup() возвращает не нулевое значение, выводим сообщение об ошибке
 и выходим из программы}
if WSAStartup($101,D)<>0 then exit;

 { Определяем тип семейства сокетов, и IP адрес для сканирования }
 A.sin_family:=AF_INET;
 A.sin_addr.S_addr:=inet_addr(pchar("10.22.3.3"));
 { Создаем сокет }
 S:=socket(AF_INET,SOCK_STREAM,0);
 { Если возвращено значение INVALID_SOCKET, выводим сообщение об ошибке }
 if S=INVALID_SOCKET then showmessage("socket error");
 { Определяем порт (задается константой) }
 A.sin_port:=htons(port);
 { Пытаемся подконнектиться, если удачно - выводим сообщение, что порт открыт,
 в другом случае - сообщение о том, что порт закрыт (или недоступен) }
 if connect(S,A,sizeof(A))=0 then
showmessage (inttostr(port)+" opened") else
showmessage (inttostr(port)+" closed");
end;
{ Завершаем работу с сокетами }
WSACleanup;

end;


 
Renald   (2004-05-15 09:52) [9]

Да еще  A.sin_port:=htons(port);
на  A.sin_port:=port;
ничего недает,код работает,но номер порта 0 .?


 
Verg ©   (2004-05-15 11:54) [10]

[8]

> перешол на низкий,
> код на ладони,но неработает


И
[9]

> код работает,но номер порта 0 .?


Так работет или не работает код из [8]?
Или какой вопрос-то? Почему снифер неверно работает?


 
Renald   (2004-05-15 13:02) [11]

я смотрю через firefall Outpost и видно что запросы к адресу
идет но обращаются к порту 0,а не 21.код [8]
хотя в коде вроде верно
const
port = 21;
.....
A.sin_port:=htons(port); // ставим номер порта! он равен 21


 
Verg ©   (2004-05-15 13:08) [12]

Если на заданном IP обслуживается 21 порт, то [8] соединяется или не соединяется к этому IP?!


 
Renald   (2004-05-15 17:53) [13]

>Если на заданном IP обслуживается 21 порт, то [8] соединяется или не соединяется к этому IP?!

не соеденинятся.
код взят в сети со сканера
я пробывал перебрать -(pchar("10.22.3.3"));ипы
в поисках хоть одного открытого 21 - ненашел.
Хотя он открыт -видно другими инструментами.

Я нашел почему не соединяется,потому что соединение
проиходит по номеру порта 0 к удаленной машине,и конечно
соединения не будет.Вот я и думаю,где ж в коде затесался НОЛЬ?


 
Verg ©   (2004-05-15 17:59) [14]

А почему у меня работет вот этот код?

program FTPConnect;

{$APPTYPE CONSOLE}

uses
 Windows,
 WinSock;
var
 WSAData : TWSAData;
 S : TSocket;
 Sa : TSockAddrIn;
begin
 if WSAStartup(MakeWord(1,1), WSAData) = NO_ERROR then
 begin
   ZeroMemory(@Sa, sizeof(Sa));
   S := socket(PF_INET, SOCK_STREAM, 0);
   Sa.sin_family := AF_INET;
   Sa.sin_port   := htons(21);
   Sa.sin_addr.S_addr := inet_addr("193.233.9.194");
   if S<> INVALID_SOCKET then
   begin
     if connect(S, Sa, sizeof(Sa)) = SOCKET_ERROR then
        WriteLn("Connection error")
     else
        WriteLn("Ok!");
     closesocket(S);
   end else Writeln("Socket error");
   WSACleanup;
 end;
 Readln;
end.


 
Renald   (2004-05-15 18:08) [15]

что не работает тоже ?
у меня нет ZeroMemory(@Sa, sizeof(Sa));


 
Verg ©   (2004-05-15 18:16) [16]


> [15] Renald   (15.05.04 18:08)
> что не работает тоже ?


Я не понял. Я вроде по-русски написал, что эта программа [14] прекрасно работает. Дает правильный ответ на вопрос - доступен ли порт 21 на заданном IP.
Что еще неясно?
Какой там снифер, и чего там показывает - мне фиалетово.


 
Renald   (2004-05-15 18:23) [17]

Спасибо Verg !!!! .Я просто сейчас проверить не cмог.Я в WinXP(internet)  a Delph4 у меня в Win98 .Скомпилирую там



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

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
3-1086951857
kondryuk
2004-06-11 15:04
2004.07.11
Выход за пределы диапазона


3-1086685053
serg128
2004-06-08 12:57
2004.07.11
Как динамически добавить поле типа Lookup в TClientDataSet?


14-1087569243
cf
2004-06-18 18:34
2004.07.11
;)


3-1087306069
Ertong
2004-06-15 17:27
2004.07.11
Номер записи


1-1088062295
Heretic
2004-06-24 11:31
2004.07.11
Дочерние окна