Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103

Как ускорить программу сканера IP адрессов

07.04.2012, 11:45. Показов 3066. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал программу с 4-мя циклами которая посылает на IP адресса запросы (начиная от 0.0.0.1 до 255.255.255.255) и если ответ от сервера получен программа выводит IP адресс. Но работает она... За пол часа нашел только 1 IP 1.1.1.2. Я думал что это бред, и я опять чего-то наговнокодил, но после проверки командой PING в консоле сервер и вправду ответил. Значит программа ищет, но долго. Как можно усовершенствовать данный код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
 
namespace IPGuard
{
    class Program
    {
        public static void Main(string[] args)
        {
            System.Net.IPAddress IPAdress = null;
            System.Net.NetworkInformation.Ping Ping = new System.Net.NetworkInformation.Ping();
            for (int IP1 = 0; IP1 < 255; IP1++)
            {
                for (int IP2 = 0; IP2 < 255; IP2++) 
                {
                    for (int IP3 = 0; IP3 < 255; IP3++) 
                    {
                        for (int IP4 = 1; IP4 < 255; IP4++) 
                        {
                            IPAdress = System.Net.IPAddress.Parse(Convert.ToString(IP1) + "." + Convert.ToString(IP2) + "." + Convert.ToString(IP3) + "." + Convert.ToString(IP4));
                            if (Ping.Send(IPAdress).Status == System.Net.NetworkInformation.IPStatus.Success)
                            {
                                Console.WriteLine(IPAdress);
                            } 
                        }
                    }
                }
            }
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2012, 11:45
Ответы с готовыми решениями:

Как максимально ускорить программу в MVS?
Есть программа с кучей массивов и циклов, выполняется 30 секунд, нужно 10-. Какие есть способы встроенной оптимизации по времени в visual...

Как ускорить программу?
m=int(input()) for i in range(1,10**18): if (i)&lt;m and m&lt;=(i ** 2 + i)//2: a=(((i ** 2 + i)//2)) print (a) ...

Как ускорить программу?
Доброго времени суток! Появилось немного свободного времени, решил повспоминать haskell зашел на codewars выбрал задачу. Задача...

23
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.04.2012, 18:33
Студворк — интернет-сервис помощи студентам
Кстати, и без перебора портов сканирование той же локалки займёт как мимум 5 суток 23 часа 10 минут 17 секунд.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.04.2012, 18:47
Цитата Сообщение от Кошковладельцев Посмотреть сообщение
у нас уже до методов дошло. И сферической многопоточности в вакууме
Ну вам же выше объяснили в чем преимущество многопоточности в данном случае.
Есть запросы I/O, которые требуют времени на выполнение. Можно запустить быстро-быстро друг за другом несколько запросов и ждать их окончания, чем запускать один, ждать, запускать другой, снова ждать и т.д. И без всяких сфер и вакуумов же понятно.

Проводя аналогию с реальной жизнью: вот есть у вас 4 послыки, которые надо разослать на разные адреса в разных концах земного шара.
Есть несколько вариантов:
1. Отправить курьера на первый адрес, подождать пока он вернется, дать другую посылку и отправить на новый адрес. Повторять, пока не закончатся коробки. Это то, что сейчас происходит в коде у ТС.
2. Дать курьеру все посылки и список адресов - пусть разбирается.
3. Озадачить четырех посыльных, дав каждому по адресу и пакету - пусть бегают. Обратите внимание, что выдача пакетов курьерам будет происходить не сразу всем одновременно, у нас все таки один процессор всего две руки. Раздали пакеты и занимайтесь рукоблудием дальше. Это вариант с многопоточностью.

В каком случае, по-вашему, все 4 пакета будут доставлены в кратчайшие сроки? И как при этом на скорость доставки будет влиять количество имеющихся у вас (свободных) рук?
0
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
07.04.2012, 19:22
Цитата Сообщение от kolorotur Посмотреть сообщение
Ну вам же выше объяснили в чем преимущество многопоточности в данном случае.
Ок, понЯл
0
68 / 24 / 2
Регистрация: 16.05.2009
Сообщений: 73
09.04.2012, 09:19
проще не париться с потоками, а SendAsync использовать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2012, 09:19

Как ускорить программу?
n, m = input().split() team,word = , points = *int(n) for i in range(int(m)): team, word = input().split() ...

Как ускорить программу?
Здравствуйте, такая задача: Страна состоит из n городов, которые расположены на оси. Координата i-го из городов равна xi. Выведите...

Как ускорить программу?
Задача: найти в строке такую подстроку максимальной длины, чтобы символы в ней не повторялись. Принцип решения: пусть дана строка s, в...

Как ускорить данную программу
И опять магические квадраты...Пытаюсь вычислить все магические квадраты 4-ого порядка, но программа работает слишком медленно...Странно, но...

Как ускорить готовую программу?
Доброго времени суток уважаемые форумчане. Я решил задачу ,но при сдаче исходного кода мне пишет ,что долго выполняется программа....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru