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

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

07.04.2012, 11:45. Показов 3097. Ответов 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 / 1799 / 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
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru