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

Вниз

открыт ли 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.033 c
14-1087570769
Sormy
2004-06-18 18:59
2004.07.11
Что специалисты думают по поповоду Delphi 8?


4-1085648572
osama
2004-05-27 13:02
2004.07.11
Вопрос по консоли


3-1087029221
Юрий
2004-06-12 12:33
2004.07.11
dbExpress


9-1080245106
GunmeN
2004-03-25 23:05
2004.07.11
Дым войны


3-1087276044
query
2004-06-15 09:07
2004.07.11
1 234 567,000 -->>> 1234567





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