Форум «Всё о Паскале» _ Делфи _ Сканер открытого порта
Автор: Mr.Dmitry 13.04.2007 19:09
Здраствуйте! помогите написать такой сканер! Нужно отслеживать открытый порт 1723 в сетки с диапозоном порта 172.27.1.1 до 172.27.254.254 Я написал пробную прогу (переделал с учебника Delphi Глазами хакера) которая сканирует только по 1 из адресов этот порт! Вот код:
procedure TForm1.Button1Click(Sender: TObject); Var ipstr:string; port:integer; begin ipstr:='172.27.176.183'; port:=1723 TcpClient1.RemotePort:=IntToStr(port); TcpClient1.Open; If TcpClient1.Connected then Label1.Caption:='Открыт'; TcpClient1.Close; end;
При работе этого кода выдаеться что порт открыт Но если я изменю строку ipstr:='172.27.176.183'; допустим на ipstr:='1'; Пишит что порт тоше открыт! И еще как написать чтоб сканировался диапозон адресов а не 1 адресс как у меня сейчас (без ввода диапозона адресов со стороны пользователя)
Автор: Mr.Dmitry 15.04.2007 19:27
Ну че не кто незнает?
Автор: Адель 15.04.2007 20:32
1. У меня Вообще ничего не пишет(( 2. может стоит попробовать увеличивать свойство RemotePort 3. имхо ipstr к TCPClient вообще в данном случае отношения не имеет 4. юзай IP Tools - все давно за тебя сделали
Автор: Mr.Dmitry 15.04.2007 21:01
Цитата(Адель @ 15.04.2007 16:32)
1. У меня Вообще ничего не пишет(( 2. может стоит попробовать увеличивать свойство RemotePort 3. имхо ipstr к TCPClient вообще в данном случае отношения не имеет 4. юзай IP Tools - все давно за тебя сделали
Свойство RemotePort я не могу увеличить так как мне нужно отслеживать именно 1723 порт Ipstr эта переменая которая конечноже не может иметь ни чего общего с TCPClient
Цитата
for i:=a to b do begin ipstr:='172.27.176'+IntToStr(i); ... end;
ну и вложенные циклы можно сделать, соответственно.
СПС
Автор: Адель 15.04.2007 21:05
Цитата
Свойство RemotePort я не могу увеличить так как мне нужно отслеживать именно 1723 порт
ну конешно не RemotePort, а RemoteHost...опечатка
Цитата
Ipstr эта переменая которая конечноже не может иметь ни чего общего с TCPClient
ты не понял, я про то, что ей присвоили адрес, попросили ввести, и ВСЁ;, больше она не с чем не взаимодействует, зачем она вообще нужна??
Автор: Mr.Dmitry 15.04.2007 21:18
Цитата(Адель @ 15.04.2007 17:05)
ну конешно не RemotePort, а RemoteHost...опечатка
ты не понял, я про то, что ей присвоили адрес, попросили ввести, и ВСЁ;, больше она не с чем не взаимодействует, зачем она вообще нужна??
С ipstr буит цикл дипозонов ip адрессов тоесть по введеному диапозону будет сканироваться окрыт ли такой порт на одном из ip или нет
Автор: Адель 15.04.2007 21:27
Цитата
С ipstr буит цикл дипозонов ip адрессов
не, ну что БУДЕТ это понятно, вопрос был о том, что ipstr делает здесь:
ipstr:='172.27.176.183'; port:=1723 TcpClient1.RemotePort:=IntToStr(port); TcpClient1.Open; If TcpClient1.Connected then Label1.Caption:='Открыт'; TcpClient1.Close;
Автор: Mr.Dmitry 15.04.2007 21:39
Цитата(Адель @ 15.04.2007 17:27)
не, ну что БУДЕТ это понятно, вопрос был о том, что ipstr делает здесь:
ipstr:='172.27.176.183'; port:=1723 TcpClient1.RemotePort:=IntToStr(port); TcpClient1.Open; If TcpClient1.Connected then Label1.Caption:='Открыт'; TcpClient1.Close;
ну так я пишу что ipstr -это ip адресс который сканируеться на наличие нужного порта!
procedure TForm1.Button1Click(Sender: TObject); var i:Integer; ipstr:String; begin ipstr:='127.0.0.1'; if not InputQuery('Âíèìàíèå', 'Ââåäè IP àäðåñ', ipstr) then exit; for i:=StrToInt(Edit1.Text) to StrToInt(Edit2.Text) do begin TcpClient1.RemotePort:=IntToStr(i); TcpClient1.Open; if TcpClient1.Connected then Memo1.Lines.Add(IntToStr(i)+' îòêðûò'); TcpClient1.Close; end; end;
Вот посмотри этот пример (Взят с книги Delphi Глазами хакера) тут все работает!
Автор: Адель 15.04.2007 21:52
Цитата
1. У меня Вообще ничего не пишет((
ничего новогу сказать не могу. нажимаю сканить (например 80) и он молчит. какой порт ты пытаешь и по какому IP не буду споритть, но имхо ipstr, тут не за что не отвечает.