Какой рейтинг вас больше интересует?
|
Создание Port Scanner с C#2012-11-01 09:19:54 (читать в оригинале)
IP инструмент сканирования может оказаться полезным, если вы хотите проверить безопасность вашего компьютера. Открытый порт это не обязательно приглашение для хакеров, так как приложения и сервисы вашего или другого компьютера могут использовать порты для выхода в Интернет или локальную сеть. Например, для веб-сервера обычное дело иметь открытый 80-й порт, или на FTP-сервере иметь открытым 21-й порт. Мы будем использовать TcpClient , чтобы подключиться к каждому порту. Если код вызывает исключение, это вероятно, потому что подключение было неудачным. Однако если нет никаких исключений, это означает, что TcpClient успешно подключен к порту и, таким образом, порт открыт. Сначала подключаем необходимые нам для работы пространства имен: 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 не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.