![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
открыт ли 21 80 порт на удал... [D4, D5, WinXP]
Renald © (2004-05-13 01:30:00)Есть ИП (10.33.22.х) нужно проверить открыт ли 21 или 80 порт
чтоб понять что унего стоят FTP и HTTP server
обычными компонен делфи
Renald (2004-05-15 18:23:00) [1]Спасибо Verg !!!! .Я просто сейчас проверить не cмог.Я в WinXP(internet) a Delph4 у меня в Win98 .Скомпилирую там
Verg (2004-05-15 18:16:00) [2]
> [15] Renald (15.05.04 18:08)
> что не работает тоже ?
Я не понял. Я вроде по-русски написал, что эта программа [14] прекрасно работает. Дает правильный ответ на вопрос - доступен ли порт 21 на заданном IP.
Что еще неясно?
Какой там снифер, и чего там показывает - мне фиалетово.
Renald (2004-05-15 18:08:00) [3]что не работает тоже ?
у меня нет ZeroMemory(@Sa, sizeof(Sa));
Verg (2004-05-15 17:59:00) [4]А почему у меня работет вот этот код?
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 17:53:00) [5]>Если на заданном IP обслуживается 21 порт, то [8] соединяется или не соединяется к этому IP?!
не соеденинятся.
код взят в сети со сканера
я пробывал перебрать -(pchar('10.22.3.3'));ипы
в поисках хоть одного открытого 21 - ненашел.
Хотя он открыт -видно другими инструментами.
Я нашел почему не соединяется,потому что соединение
проиходит по номеру порта 0 к удаленной машине,и конечно
соединения не будет.Вот я и думаю,где ж в коде затесался НОЛЬ?
Verg (2004-05-15 13:08:00) [6]Если на заданном IP обслуживается 21 порт, то [8] соединяется или не соединяется к этому IP?!
Renald (2004-05-15 13:02:00) [7]я смотрю через firefall Outpost и видно что запросы к адресу
идет но обращаются к порту 0,а не 21.код [8]
хотя в коде вроде верно
const
port = 21;
.....
A.sin_port:=htons(port); // ставим номер порта! он равен 21
Verg (2004-05-15 11:54:00) [8][8]
> перешол на низкий,
> код на ладони,но неработает
И
[9]
> код работает,но номер порта 0 .?
Так работет или не работает код из [8]?
Или какой вопрос-то? Почему снифер неверно работает?
Renald (2004-05-15 09:52:00) [9]Да еще A.sin_port:=htons(port);
на A.sin_port:=port;
ничего недает,код работает,но номер порта 0 .?
Renald (2004-05-15 01:42:00) [10]Что то не пашет так,перешол на низкий,
код на ладони,но неработает,через снифер
вижу запросы идут по заданному удал адресу,
но не порта 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-13 17:22:00) [11]спасибо попробую
Digitman (2004-05-13 15:12:00) [12]
> SEH не помогает
поможет, если режим будет ctBlocking
Renald (2004-05-13 14:48:00) [13]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
Renald (2004-05-13 14:42:00) [14]пробывал
TClientSocket =PS
PS.port=21;
ps.host='antonov';
try
PS.open
except
end;
настрой компонента
client -ctNonlocking
service - нет
в обработчике Connect
PS.close;
//--------------------------------
выдает мессагу Asynchrous socket error 10061 !!?
и SEH непомогает
задание не имени а ИПа - тоже самое
другие порты-тоже,
хотя известно что машина есть и порт открыт
Может стороний компонент есть спецальный
panov (2004-05-13 13:16:00) [15]TClientSocket
Renald (2004-05-13 12:16:00) [16]каким компонентом?
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;
Rouse_ (2004-05-13 09:09:00) [17]Соелдиняйся с портом, посылай ему что нибудь - жди ответ - анализируй...