[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / C - C++ /

Cканер портов

Перед тем как начать, скажу что данная статья направлена на то, чтобы понять как работают сканеры портов, и понимать как от них возможно защищаться, и не в коем случае не на какие-нибудь другие цели.

Все сканеры портов работают по очень простому принципу: конектимся к порту и если конект состоялся, то значит он открыт, а если нет то закрыт.

Запустили С++ Builder, так запускайте!!! Сперва на новую форму добавляем такие компоненты: два Edit'a, два Label'a, два BitBtn'a, один RichEdit и один TcpClient. Больше никаких компонентов нам и не надо. Дальше в Caption первой кнопочки пишем "Сканировать", а во второй вторую "Закрыть". Для кнопочки "Закрыть" пишем следующий обработчик событий:

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Close ();// просто закрывает форму
}
//---------------------------------------------------------------------------

Первый Label подписываем "IP адрес:" и размещаем возле первого Edit'a, а второй Label подписываем, как "Порт:". Т.е. в первом Edit'e мы будем вписывать значение IP адреса, а во втором Edit'e будем вписывать нужный порт. Да вот не сказал сканер портов будет ручной. Не забудьте в обоих Edit'ах стереть все в свойстве Text, чтоб всякая фигня не отображалась. RichEdit нам нужен, чтобы туда записывались результаты сканирования. В него тоже в свойстве Lines нужно все затереть. А дальше пишем следующий обработчик событий для кнопки "Сканировать":

void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
TcpClient1->RemoteHost=Edit1->Text;// берем значения хоста с свойства Text компонента Edit1
RichEdit1->Lines->Add(TcpClient1->RemoteHost + ":");//записываем в RichEdit значение сканируемого порта
TcpClient1->RemotePort=Edit2->Text;//берем значение порта с свойства Text компонента Edit2
TcpClient1->Active=true;//устанавливаем в компоненте TcpClient1 свойство Active в значение true т.е. разрешаем конектится
if (TcpClient1->Connected)//если конект прошол удачно
RichEdit1->Lines->Add(TcpClient1->RemotePort + " порт открыт");//то порт открыт
else {//а ели конекта не было
RichEdit1->Lines->Add(TcpClient1->RemotePort + " порт закрыт");//то порт закрыт
}
//---------------------------------------------------------------------------

Да забыл добавим еще одну кнопку и назовем ее "Очистить" и пропишем для нее такой обработчик события:

void __fastcall TForm2::N8Click(TObject *Sender)
{
RichEdit1->Clear(); //просто очищаем результаты сканирования
}
Думаю поняли зачем это надо. Ну в этом сканере можно наворотить еще многое, например, сохранение результатов сканирования, введения диапазона сканирования и так далее но это уже без меня. Но скажу, одно, если сделаете по данному принципу сканер с диапазоном сканирования, то большие диапазоны портов не возможно будет сканировать, а то комп. зависнет, но где то максимум 20 и то лучше сканировать не более 10 тогда точно не зависнет.

Автор: Нестерюк Дмитрий
Источник: www.bib.com.ua



Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / C - C++ /

Пишем CD проигрыватель 2
28-05-2010   

Сейчас я покажу как можно написать простой проигрыватель CD дисков. Для начала разместим все нужные компоненты на форме (см. рисунок)... подробнее

Кол. просмотров: общее - 4126 сегодня - 0

Пишем браузер
28-05-2010   

Продолжаю тему клонирования программ darkamstera на Delphi в С++Builder. В этой статье я покажу, как с помощью стандартных компонентов, можно создать свой браузер. Браузер будет на движке всеми-любимого InternetExplorer. Наш зверь сможет ходить по URL... подробнее

Кол. просмотров: общее - 2904 сегодня - 0

Информация о системе
28-05-2010   

Выводим информацию о нашей родненькой системе. Для получения большей части информации мы будем использовать обширные функции, это не так сложно, как может показатся с первого взгляда и вообще код довольно простой и примитивный, так что покапавшись в нем пару минут - можно в легкостью разобраться что к чему, зачем и как... подробнее

Кол. просмотров: общее - 2929 сегодня - 0

FTP клиент своими руками
28-05-2010   

Здраствуй, сечас я покажу, как в CBuilder можно создать свой простой FTP-клиент, похожий пример можно найти в документации C++Builder Developnets Guilde... подробнее

Кол. просмотров: общее - 3360 сегодня - 0

Работаем с POP-сервером
28-05-2010   

Здраствуй, в этой статье я расскажу про способы получения e-mail писем и их прочтения. Для начала давайте составим интерфейс будущей программы Вот, что у меня вышло... подробнее

Кол. просмотров: общее - 2967 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects