Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

кодировка ip адреса


Sour ©   (2005-07-19 06:27:00) 

Пришлось работать с уже созданной БД для накопления статистики по трафику. Во всех таблицах ip адрес записывается в поле int(10).

В связи с этим 2 вопроса:
1. Как получить стандартное представление адреса (напр, 192.168.1.1) имеея его в значении int(10) и наоборот?

2. Как можно проверить принадлежность ip адреса некоторому диапазону, если он задан как int(10)?


Anatoly Podgoretsky   (2005-07-19 12:17:00) [1]

Тому вечная память.


DiamondShark   (2005-07-19 12:12:00) [2]

А кто не может?


Anatoly Podgoretsky   (2005-07-19 11:09:00) [3]

Спасайся кто может.


wal   (2005-07-19 10:47:00) [4]

oktet:array[1..4] of int32
???


tesseract   (2005-07-19 10:44:00) [5]

Для Справки IP-адрес это 32-битное число

To>> Lamer@fools.ua
да промахнулся  работать будет не всегда
лучше oktet:array[1..4] of int32; и писать октеты сюда.


wal   (2005-07-19 10:40:00) [6]


> раз в н-дцать быстрее
Я только принцип показал, а как уж автор считать будет - дело его.
Кстати, еoе быстрее просто положить байты в память в нужной последовательности, а потом прочитать их как DWORD.


Lamer@fools.ua   (2005-07-19 10:36:00) [7]

>> Sour   (19.07.05 06:27)

Телепаты в бессрочном отпуске.

>> tesseract   (19.07.05 10:35) [4]

Уверены?


tesseract   (2005-07-19 10:35:00) [8]

>>1+1*256+168*265*265+192*256*256*256 = 3232235777

1+(1 shl 8)+(168 shl 16)+(192 shl 24)? - раз в н-дцать быстрее


wal   (2005-07-19 09:59:00) [9]

Ошибочка вышла ... 168*256*256...


wal   (2005-07-19 09:55:00) [10]


> напр, 192.168.1.1

1+ 1*256+ 168*265*265+ 192*256*256*256 = 3232235777
Причем тут int(10)?

С уважением.


Strech   (2005-07-19 07:32:00) [11]

ну угадать, как разработчик БД зашифровал IP в int(10) сложно. Можно предположить, что он представил IP в виде строки, удалил все точки и перевел полученный результат в int. Соответственно ответ на первый вопрос - это обратный алгоритм. Ну а второй ответ вытекает из первого


Наверх

Титульная страница Поиск, карта сайта Написать письмо