![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Testernew |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 12.2.2012 Где: Луганск Репутация: нет Всего: нет |
Пробую сам но уже 2 дня не могу сделать к своему стыду, и чувство что делаю блин криво как то)) задача закодировать ip адрес к примеру в 5 или 6 значное число а затем с помощью другой функции его раскодировать.... я пробую вот так, что бы запомнить координаты точек(разделителей в ip адресе)) я использую знак '-' но как то коряво выходит... а собрать потом назад этот ip не могу.
Вот мои функции(пишу в MFC): ip из нормального вида в закодированный я перевожу нормально(черточки конечно эти не совсем к стати) а остальное не работает.
Как то бы в этот код вставлять скрытую метку) для обозначения точек в ip. Если будет время ответь плиз) буду конечно стараться допилить свой вариант.. но а там.... |
|||
|
||||
| Randomazer |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 20.6.2010 Репутация: нет Всего: нет |
Переведи каждое число в 16-ю систему счисления.
Правда 8 символов будет Это сообщение отредактировал(а) Randomazer - 23.10.2013, 09:06 |
|||
|
||||
| Testernew |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 12.2.2012 Где: Луганск Репутация: нет Всего: нет |
Думал в этом направлении но хочется что бы были только цифры.
|
|||
|
||||
| Guinness |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: нет Всего: 10 |
IPv4 - адрес занимает 4 байта, т.е можно из строки IP-адреса преобразовать к 4 байтовому числу. Как это показал Randomazer.
Тут не очень понятно, нужно получить хэш ip-адреса? Насколько мне известно, обратно восстановить ip-адрес не получится. Можно пояснить, что под этим понимать. Простой пример:
Это сообщение отредактировал(а) Guinness - 23.10.2013, 13:45 |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
| Testernew |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 12.2.2012 Где: Луганск Репутация: нет Всего: нет |
На выходе хочу получить просто целое число, чем короче тем лучше. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
| ТарасАтавин |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
-------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
Ну, положим, не при любом - если, например, основание равно 255, то удастся обойтись пятью знаками. |
|||
|
||||
| ТарасАтавин |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
А что там ещё может быть? Иероглифы?
Добавлено через 1 минуту и 17 секунд
Добавлено через 3 минуты и 2 секунды
-------------------- Не так всё плохо, как оно есть на самом деле. |
||||
|
|||||
| Фантом |
|
||||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
Зачем?
Аналогичный вопрос. Вы пытаетесь кодировать отдельные байты вместо IP в целом, а это невыгодно. Для представления числа, у которого в системе счисления с основанием 256 не более двух цифр, в десятиричной системе нужно пять цифр (диапазон 0.0 - 255.255 в десятиричной системе соответствует 0 - 65535). Соответственно, достаточно уже не 12 цифр, а 10. Несложно показать, что еще меньше не получится (256^4-1 > 10^9). Вы только что сами процитировали вот это: |
||||
|
|||||
| ТарасАтавин |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) ТарасАтавин - 23.11.2013, 18:54 -------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
И что? Разжуем подробнее, раз сходу непонятно. Любому адресу вида A.B.C.D можно сопоставить число N=A*256^3+B*256^2+C^256+D, причем подобное сопоставление будет биекцией (по сути дела, это просто перевод числа, записанного в 256-ричной системе счисления, в 10-ричную). Соответственно, любому возможному IP соответствует некоторое одно число в диапазоне от 0 до 256^4-1=4294967295. Длина обычной десятичной записи таких чисел, очевидно, не превышает 10 знаков. |
|||
|
||||
| ТарасАтавин |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Добавлено через 3 минуты и 9 секунд По идее IP - это вообще
-------------------- Не так всё плохо, как оно есть на самом деле. |
||||
|
|||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
Хм... Вы вообще что и с кем обсуждаете? |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Откуда такие данные? ТС про это не писал. Он просто указал, что ему надо IP адрес представить в виде 5-6-значного десятичного числа. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |