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

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

07.04.2012, 11:45. Показов 2853. Ответов 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
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
07.04.2012, 12:43
Искать в несколько потоков
Но весь Internet она будет сканировать долго
Думаю одного дня не хватит
1
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
07.04.2012, 12:47  [ТС]
Цитата Сообщение от odip Посмотреть сообщение
Искать в несколько потоков
Всегда про потоки забываю!

И думаю, лучше написать функцию которая будет прнимать два параметра, искать все досутпные адресса в диапозоне от и до.

Спасибо!
0
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
07.04.2012, 13:00
Цитата Сообщение от odip Посмотреть сообщение
Искать в несколько потоков
Гм. А с чего оно ускориться должно?
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
07.04.2012, 13:03  [ТС]
Цитата Сообщение от Кошковладельцев Посмотреть сообщение
А с чего оно ускориться должно?
А почему нет?
0
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
07.04.2012, 13:20
А почему да?
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
07.04.2012, 13:29  [ТС]
Цитата Сообщение от Кошковладельцев Посмотреть сообщение
А почему да?
Ну как-же? Запустить метод в трех потоках, и выполнится он в три раза быстрее, логично-же.
0
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
07.04.2012, 14:14
Учитывая, что выполнять эти три метода будет один и тотже процессор, станвится уже не так логично
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
07.04.2012, 15:42  [ТС]
Думаю, кодеры из майкрасофт умнее нас с вами, и не зря сделали возможность использовать многопоточность.
0
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
07.04.2012, 15:52
Эм. Многопоточность сама по себе вовсе не для ускорения работы программы сделана.
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
07.04.2012, 16:25  [ТС]
Именно, она сделанна для того, чтобы выполнять несколько действий сразу. Но если, в данном случае, запускать в одном потоке метод который сканирет диапозон адрессов от a до b, а в другом потоке метод который сканирует диапозон от b до c, разве это все дело не будет выполнятся в разы быстрей?
0
 Аватар для Alex_oo7
62 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
07.04.2012, 16:40
Просто пинг ждёт ответа от IP некоторое время и пока он ждёт, ничего не делает !!!!
А в этот перерыв можно много новых запросов послать
0
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
07.04.2012, 16:44
Цитата Сообщение от CycleFunction Посмотреть сообщение
она сделанна для того, чтобы выполнять несколько действий сразу.
Гм. Ну как выполнять несколько действий сразу, если процессор на них один и одноядерный? И даже много ядер/процессоров ситацию не обязательно исправляют.
Цитата Сообщение от CycleFunction Посмотреть сообщение
разве это все дело не будет выполнятся в разы быстрей?
Предлагаю померять )
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.04.2012, 16:56
Потоки не помогут, держит скорость сети. Перебор четырёх байт - это (2^8)^4=2^32=4 294 967 296 вариантов адресов. А если перебирать ещё и порты, то ((2^8)^4)*((2^8)^2)=(2^8)^(4+2)-(2^8)^6=2^48=281 474 976 710 656 вариантов, даже если по каждому отправлять только один пакет, раздели ка на число пакетов в секунду. Даже в локалке по 100 мегабит это как минимум 33 778 348 339 секунд>1000 лет.

Добавлено через 40 секунд
Цитата Сообщение от Кошковладельцев Посмотреть сообщение
Ну как выполнять несколько действий сразу, если процессор на них один и одноядерный?
А при чём здесь процессор?
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
07.04.2012, 16:58  [ТС]
Цитата Сообщение от Alex_oo7 Посмотреть сообщение
Просто пинг ждёт ответа от IP некоторое время и пока он ждёт, ничего не делает !!!!
А в этот перерыв можно много новых запросов послать
DDos атака называется.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.04.2012, 17:01
На своего провайдера.
0
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
07.04.2012, 17:24
Цитата Сообщение от taras atavin Посмотреть сообщение
А при чём здесь процессор?
При абстрактной многопоточности
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
07.04.2012, 18:25
Цитата Сообщение от Кошковладельцев Посмотреть сообщение
как выполнять несколько действий сразу, если процессор на них один и одноядерный?
I/O-операции, к которым относится и запрос в сеть, выполняются без участия процессора, если мне не изменяет память, года с 1957-58.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.04.2012, 18:30
Цитата Сообщение от Кошковладельцев Посмотреть сообщение
При абстрактной многопоточности
Но исполняет то не он, а сетевуха.
0
74 / 63 / 0
Регистрация: 24.03.2012
Сообщений: 333
07.04.2012, 18:32
kolorotur, у нас уже до методов дошло. И сферической многопоточности в вакууме )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2012, 18:32
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru