0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
|
1 | |
Калькулятор IP05.10.2009, 20:21. Показов 11016. Ответов 30
Метки нет (Все метки)
Нужно написать программку, которая обрабатывает значения ip и маски, и выводит информацию (число сетей, узлов и т.д.). В связи с небольшим опытом программирования, не знаю как интерпретировать ip на языке, не знаю как записать и где сохранить. Какие могут быть варианты, с учетом более удобной дальнейшей работы с адресом.
0
|
05.10.2009, 20:21 | |
Ответы с готовыми решениями:
30
Как преобразовать обычный калькулятор в калькулятор использующий класс стек? Простой калькулятор и калькулятор с парсингом Калькулятор Калькулятор |
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
|
|
05.10.2009, 21:23 | 2 |
А разбиения на логические подсети надо учитывать?
0
|
1 / 1 / 0
Регистрация: 27.09.2009
Сообщений: 8
|
|
06.10.2009, 00:00 | 4 |
Че его интерпретировать-то? http://ru.wikipedia.org/wiki/Маска_подсети
Чтобы получить адрес сети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции (логическое И). IP-адрес: 11000000 10101000 00000001 00000010 (192.168.1.2) Маска подсети: 11111111 11111111 11111111 00000000 (255.255.255.0) Адрес сети: 11000000 10101000 00000001 00000000 (192.168.1.0)
1
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
06.10.2009, 20:58 | 6 |
Есть еще IPv6 - там адрес занимает 16 байт.
0
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
|
11.10.2009, 20:16 [ТС] | 7 |
Ну 6-я версия IP была успешно разработана и так же успешно положена на полку.
Так что нет необходимости обеспечивать функционал для поддрежки этого стандарта
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
11.10.2009, 20:18 | 8 |
До сих пор допиливают Vista/2008/Windows7 по умолчанию имеют включенный IPv6
0
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
|
11.10.2009, 20:28 [ТС] | 9 |
Вот только не видно, что кто-то сильно его использует. Долго переходить будут, если вообще будут.
Добавлено через 3 минуты Да дело не в этом. По сути машине безразлично, в каком виде хранятся данные... Я спрашиваю, как реализовать работу алгоритма в консоле: 1) Ввод IP в виде 192.168.26.132. 2) Нажимаем enter, данные куда-то записались Как игнорировать точки ?
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
11.10.2009, 20:31 | 10 |
Например можно использовать функцию strtol().
0
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
|
11.10.2009, 20:38 [ТС] | 11 |
а нельзя более подробно пример ?
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
||||||
11.10.2009, 20:44 | 12 | |||||
Еще есть функции конвертации: inet_ntoa(), inet_aton() Которые делают именно то что нужно
1
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
|||||||||||
12.10.2009, 16:26 [ТС] | 14 | ||||||||||
a,b,c,d - 4 переменных для четырех актетов IP-адреса - это понятно...
А строка
А вот этот кусок вообще непонятен
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
12.10.2009, 16:32 | 15 |
Используй inet_ntoa(), inet_aton()
0
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
|
12.10.2009, 16:39 [ТС] | 16 |
long int strtol ( const char * str, char ** endptr, int base );
Это прототип функции. Т.е. как я понял, получает функция три параметра str - указатель на нашу стркоу endptr - указатель на символ, который считается концом строки ? Почему ти идет как указатель на указатель на char ? base - параметр, определяющий систему исчисления ? Что не так понял ? Добавлено через 56 секунд Я просто разобраться хочу в работе функций
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
12.10.2009, 16:57 | 17 |
2Lorr: У тебя какой компилятор ?
Открой описание функции и почитай что делает.
0
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
||||||
12.10.2009, 17:28 [ТС] | 18 | |||||
Dev и VS8 без help'a
Нашел описание, как работает в общих чертах понял (strtol); В описании пример был, не понял один момент.
Встроке li1 = strtol (szNumbers,&pEnd,10); функции передается строка символов, которую необходимо интерпретировать в число, указатель, по адресу в котором запишется символ, на котором остановлено преобразование строки, и идентификатор системы исчисления. li2 = strtol (pEnd,&pEnd,16); но почему в этой строке в качестве строки с символами, которые нужно интерпретировать в число, передается по сути символ, на котором было остановлено преобразование в первый вызов функции ?
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
||||||
12.10.2009, 18:27 | 19 | |||||
http://opennet.ru/man.shtml?to... &russian=0
http://www.codenet.ru/progr/cp... trtoul.php Ты неправильно делаешь !!! Правильно как у меня:
А вообще быстрее может быть inet_aton() использовать. Или вообще написать свой парсер без strtol() Добавлено через 8 минут В Internet полно документации. А как ты программы пишешь, если ни одной функции не знаешь ?
0
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
|
12.10.2009, 19:57 [ТС] | 20 |
Плохо пишу =(
Добавлено через 27 минут Сори за настырность, но объясните почему приведенный мой вариант из описания не верный...
0
|
12.10.2009, 19:57 | |
12.10.2009, 19:57 | |
Помогаю со студенческими работами здесь
20
Калькулятор Калькулятор Калькулятор Калькулятор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |