Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Новости ИТ Программы Книги Games   Обои   Экспорт RSS E-Books
 
Поиск по сайту

TOP-10 программ
Symantec Norton Ghost 9.0
Partition Magic 8.0.2 Pro
Xilisoft 3GP Video Converter v3.1.7.0616b
Norton AntiVirus 2005
Xilisoft 3GP Video Converter v2.1.52.831b
Антивирус Касперского Personal 5.0.303 beta 2
RAR Password Cracker 4.12
ABBYY PDF Transformer v1.00.820
MP3 To Ringtone Gold v3.02
Mobtime Cell Phone Manager v5.3.1
 
Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
 
 

   Программирование -> C++ Builder -> 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

Ссылки по теме
BuilderX - новая среда разработки от Borland
Создание Web-приложений с помощью C++Builder 5
Использование COM-технологии в C++ Builder
FAQ конференции RU.CBUILDER по C++ Builder
FAQ по C++ Builder
 

Компьютерная документация от А до Я - Главная

 
Популярные книги

Системное администрирование на 100 % (+CD)

Подробнее

Дизайн помещений и интерьеров в 3ds max 7 (+CD)

Подробнее

Самоучитель Macromedia Flash 5

Подробнее

 

 
Новости ИТ
01.12.2008  Buffalo выпустил миниатюрные USB-накопители
01.12.2008  VENTO TA-U1 - стильный корпус представлен Asus
01.12.2008  Fujitsu-Siemens выпускает в продажу внешний ускоритель для ноутбуков
01.12.2008  Оригинальные чехлы для ноутбуков от Choiix
01.12.2008  Опубликован код драйвера для беспроводных карт Atheros
01.12.2008  Лучший блог 2008
01.12.2008  Linux запустили на Apple iPhone
01.12.2008  LG KC780
01.12.2008  MSI дополнит линейку Wind-нетбуков двумя моделями
01.12.2008  Nikon D3X - 24,5 млн пикселей для профессионалов
01.12.2008  Киловаттник HIPER M1000 с КПД выше 85%
01.12.2008  AMD впервые снизила цены линейки Radeon HD 4800
01.12.2008  Чистильщики: Wise Registry Cleaner v.3.8.2
01.12.2008  Антивирусы: RemoveIT Pro v4 SE (30.11.2008)
01.12.2008  Корпус ASUS Vento TA-U1 можно поставить вместо новогодней ёлки
01.12.2008  Диагностика: PC Wizard 2008 v.1.871
01.12.2008  Диагностика: NextSensor v.2.7.6.0 Build 1130
01.12.2008  Тестовые приложения: PassMark BurnInTest v.6.0 Build 1000 Beta 15
01.12.2008  Неофициальные драйверы для модемов Motorola
01.12.2008  Драйверы и утилиты для сетевых хранилищ D-Link
 
Полезно

 
Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100