Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
68 / 68 / 19
Регистрация: 06.07.2011
Сообщений: 221
1

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

23.10.2014, 19:04. Показов 2982. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добра!

Подскажите, как лучше всего реализовать?

Есть textBox1 - туда внесем начальный ip адрес
Есть textBox2 - туда внесем конечный ip адрес

далее буду использовать PingReply по каждому адресу в этом диапазоне, получать ответ и заносить в файл.

Вопрос:
Куда (во что? может в массив или еще варианты), а главное КАК - собрать ВСЕ адреса, в указанном диапазоне.

Значения могут быть такими:
textBox1 = 192.168.0.1
textBox2 = 192.168.0.240

а могут быть и такими:
textBox1 = 192.168.2.1
textBox2 = 192.168.3.240

Т.е. тут еще многое будет зависеть от подсети.

Пока не представляю, как это изложить корректно в коде.
Может кто сталкивался или понимает, что я хочу - буду признателен, за ответ!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2014, 19:04
Ответы с готовыми решениями:

Даны части IPv4 адреса и нужно собрать из них все возможные адреса
Здравствуйте, мне нужно написать такой алгоритм. Даны часты IPv4 адреса и нужно собрать из них все...

Вывести все числа в указанном диапазоне
1)Написать программу, которая выводит на экран все числа в диапазоне указанном пользователем....

Определить все ли числа из массива лежат в указанном диапазоне
Определить, все ли числа из массива А лежат в указанном диапазоне Ребят можно эту задачу...

Определить, все ли числа из массива А лежат в указанном диапазоне
4)Составьте программу для решения одной из следующих задач. 4.2. Определить, все ли числа из...

7
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
23.10.2014, 19:08 2
А что требуется? Ну взяли первый IP, послали ping, получили ответ, и занесли данные в словарь, к примеру... Ключ - это IP, а значение - это ответ.
0
68 / 68 / 19
Регистрация: 06.07.2011
Сообщений: 221
23.10.2014, 19:17  [ТС] 3
Цитата Сообщение от insite2012 Посмотреть сообщение
А что требуется? Ну взяли первый IP, послали ping, получили ответ, и занесли данные в словарь, к примеру... Ключ - это IP, а значение - это ответ.
а я ведь написал, что буду делать. Дальше кнопка "Пинговать". И нужно пропинговать весь этот диапозон.
результат - планировал вывести в текстовый документ, для дальнейшего парсинга. Путем StreamWrite. Но об этом не сейчас.

1 адрес - я тоже научился пинговать и получать результат.
C#
1
2
3
4
5
6
7
8
9
10
11
 private void button_StartPing_Click(object sender, EventArgs e)
        {
 
            string ipSt = "";
 
            ipSt = textBox_ipStart_TextChanged(ipSt);
 
            Ping pingSender = new Ping();
            PingReply reply = pingSender.Send(ipSt);
            MessageBox.Show(reply.Status.ToString());
        }
Он мне по результату ответит Success или облом.
Вопрос в другом - как состряпать данные ДИАПАЗОНА, где начало в одном textbox - а окончание в другом.

Добавлено через 4 минуты
insite2012,
1. проблема - как и чем - подсчитать и во что-то сформировать список адресов из указанного диапазона.
2. как учесть тот факт, что подсети могут быть разные, а значит и диапазон может разнится.
Если вы с подсетями не знакомы, попробую так описать:
IP адрес начало одной подсети может быть: 192.168.0.1
IP адрес окончание этой подсети может быть 192.168.0.254
если в виде маски - то так: [A].[B].[C].[D] - т.е. в указанной выше подсети - будет меняться только [D] число

А вот в другой подсети. Может быть иначе:
Например начало: 192.168.2.1
Окончание этой сети: 192.168.3.254
т.е. в этом случае - уже меняются число [C] и число [D]
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
23.10.2014, 19:19 4
Цитата Сообщение от TheShestov Посмотреть сообщение
как состряпать данные ДИАПАЗОНА
А тут в чем проблема? Насколько я знаю, первые два значения неизменны. Тогда нам остается:
1. Проверить, чтобы значение начала не совпадало или не было больше начала конца диапазона.
2. А потом два цикла, один в одном. Внешний подставляет одно значение адреса, внутренний второе.
1
68 / 68 / 19
Регистрация: 06.07.2011
Сообщений: 221
23.10.2014, 19:27  [ТС] 5
Цитата Сообщение от insite2012 Посмотреть сообщение
1. Проверить, чтобы значение начала не совпадало или не было больше начала конца диапазона.
2. А потом два цикла, один в одном. Внешний подставляет одно значение адреса, внутренний второе.
Спасибо. Попробую таким образом. Хоть он и немного не верный, с точки зрения определения подсети. Но как вариант.
А вот еще нашел такую вот библиотеку и описание к ней. Может кому пригодится:

Не по теме:

p.s. Ув. Модератор, я не очень знаком. Ссылки под катом только можно публиковать ? Верно сделал ?



Добавлено через 4 минуты
insite2012, Да и еще вопросик: куда лучше всего формировать список результатов?
Отдельный полученный результат (т.е. 1 IP адрес) - сразу закидывать в документ и потом работать с документом. или использовать какой-то массив даных?
Просто хочется учесть, что хостов может быть до 3000 штук
0
Эксперт .NET
5545 / 4308 / 1218
Регистрация: 12.10.2013
Сообщений: 12,356
Записей в блоге: 2
23.10.2014, 19:31 6
Цитата Сообщение от TheShestov Посмотреть сообщение
куда лучше всего формировать список результатов?
Если приложение на этом не закончит работу, то лучше, естественно, что-то вроде словаря. Если же планируется просмотр пользователем, то тогда, конечно, в документ, или в таблицу, или еще куда.
И думаю, что в той либе примерно такой метод, как я сказал и используется))) Каждое значение не может превысить 255. Весь адрес сплитуем по знаку ".", заносим это в массив "startIP", потом сплитуем второй, заносим в массив "endIP". Потом сравниваем. Ну и так далее. Алгоритм тут не особо сложный, я думаю...
1
68 / 68 / 19
Регистрация: 06.07.2011
Сообщений: 221
23.10.2014, 19:42  [ТС] 7
Цитата Сообщение от insite2012 Посмотреть сообщение
Алгоритм тут не особо сложный, я думаю...
Спасибо. Сейчас пробую эту либу. Пока кажется получается то, что нужно. Даже получается, что можно оставить один TextBox, где пользователю будет предложено ввести любой адрес подсети и маску, как это у них в примере показано.
В общем: Спасибо, за содействие. Будет ступор - обращусь
Но библиотека - хороша, для этих нужд Рекомендую тем, кому потребуется!
0
tezaurismosis
23.10.2014, 21:07     Куда и как собрать все IP адреса в указанном диапазоне?
  #8

Не по теме:

Цитата Сообщение от TheShestov Посмотреть сообщение
Ссылки под катом только можно публиковать ?
Можете хоть как их вставлять, главное - чтобы это были не ссылки на форумы (за исключением SO и MSDN) и не ссылки на файлы на файлообменниках.

0
23.10.2014, 21:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2014, 21:07
Помогаю со студенческими работами здесь

Определить, все ли числа из массива А лежат в указанном диапазоне
1.Составьте программу для решения следующей задачи: определить, все ли числа из массива А лежат в...

Вывести на экран построчно все целые значения в указанном диапазоне
"Регулярный цикл for" 1. Вывести на экран построчно: 1) все целые значения в указанном диапазоне:...

Записать в файл все простые числа в указанном диапазоне в столбик
Пользователь задаёт диапазон чисел и имя файла. Программа записывает в файл все простые числа в...

В указанном диапазоне найти все числа, произведение цифр которых по модулю дает заданное число
Пользователь вводит х, a, b. Из промежутка от a до b найти все числа, произведение цифр которых по...

Диапазон положительных чисел задан нижней и верхней границами. Распечатать все простые числа, лежащие в указанном диапазоне.
Program pr11_1; uses crt; var chislo,delite1,e,b,flag1,flag2:longint;...

Перебором делителей найти простые числа в указанном диапазоне, и вывести все простые числа в поле Memo
Мне нужна программка на Delphi, которая простым перебором делителей находит простые числа в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru