Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на языке С, С++, C#


Программирование на С, С++, C#

ПОЧИТАЙ

[no found]

Soft

[no found]

ССЫЛКИ

[no found]

Здавствуйте уважаемые подписчики

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 тогда точно не зависнет.

Автор: Нестерюк Дмитрий


Источник: http://www.bib.com.ua/


При использовании материалов ссылка источник с указанием имени автора обязательна!  


"Программирование на С, С++, C#"
Подписчиков: 


Ведущий рассылки: Den Kil
ICQ: 458409420
E-mail: tutre@yandex.ru
Mail.ru Agent:dmb2008 86@inbox.ru

    Вы можете разместить ссылки на свои статьи и сайты в рубликах "Почитай",  "Soft", "Ссылки" а также статьи целиком с указанием на источник (ваш сайт или рассылка).


В избранное