|
Какой рейтинг вас больше интересует?
|
Создание Port Scanner с C#2012-11-01 09:19:54 (читать в оригинале)
![]() Сначала подключаем необходимые нам для работы пространства имен: using System.Net.Sockets; Предположим, мы хотим, просканировать порты с 1 по 25 для IP 192.168.0.1 (локальный IP-сети): public void portscan()
{
//Указываем диапазон сканируемых портов
for (int CurrPort = 1; CurrPort <= 25; CurrPort++)
{
//Инициализируем новый экземпляр класса System.Net.Sockets.TcpClient.
TcpClient TcpScan = new TcpClient();
try
{
//Выполняем подключение клиента к указанному порту заданного узла.
TcpScan.Connect("192.168.0.1", CurrPort);
//Если подключение выполнено успешно то выводим сообщение
MessageBox.Show("Port " + CurrPort + " open");
}
catch
{
//Если мы поймали исключение то порт закрыт
MessageBox.Show("Port " + CurrPort + " closed");
}
}
}
В приведенном выше коде мы выполняем цикл от 1 до 25 (портов) и попытаться подключиться к каждому, как я уже объяснял ранее. На скриншоте ниже вы можете увидеть полную реализацию данной задачи и ее код: ![]() // Заносим в переменную StartPort стартовый номер порта из компонента NumericUpDown
StartPort = Convert.ToInt32(numStart.Value);
// Заносим в переменную EndPort конечный номер порта из компонента NumericUpDown
EndPort = Convert.ToInt32(numEnd.Value);
//Выставляем компонент progress bar в нулевое положение
prgScanning.Value = 0;
// Указываем максимальное значение progress bar
prgScanning.Maximum = EndPort - StartPort + 1;
// Выставляем курсор в состояние WaitCursor
Cursor.Current = Cursors.WaitCursor;
// Выполняем цикл от начального до конечного порта
for (int CurrPort = StartPort; CurrPort <= EndPort; CurrPort++)
{
//Инициализируем новый экземпляр класса System.Net.Sockets.TcpClient.
TcpClient TcpScan = new TcpClient();
try
{
//Выполняем подключение клиента к указанному порту заданного узла.
TcpScan.Connect(txtIP.Text, CurrPort);
//Если подключение выполнено успешно то выводим в txtLog
txtLog.AppendText("Port " + CurrPort + " open");
}
catch
{
//Если мы поймали исключение то порт закрыт
txtLog.AppendText("Port " + CurrPort + " closed");
}
// Выполняем шаг в progress bar
prgScanning.PerformStep();
}
//Переводим курсор в обычное состояние
Cursor.Current = Cursors.Arrow;
|
Категория «Фотографы»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.



