powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как преобразовать IP в число для хранения в БД
11 сообщений из 11, страница 1 из 1
Как преобразовать IP в число для хранения в БД
    #32525244
roman2311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как преобразовать IP в число для хранения в БД.
Это скорее вопрос математики.

Мне нужна двусторонняя функция. т.е. чтобы хранить в виде числа, а потом при желании обратно в строку.

Кстати может подойдет такой способ:
Преобразовать каждый байт IP адреса в символ и записать 4 символа в базу.
Но MySQL будет хранить уже не 4 а 5 char символов...

Наверняка это очень распространенная проблема и есть какое-нибудь простое решение.
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32525268
yo-yo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roman2311 Наверняка это очень распространенная проблема и есть какое-нибудь простое решение.

да, есть. использовать PostgreSQL. там есть тип данных ip, включая маску подсети, и набор встроенных функций для работы с ним.
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32525352
roman2311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я использую MySQL. Там нет встроенных IP функций.

Это-же простая математика второго курса, по которой у меня всегда было 3.

Может тут есть те, кто учился на 5 по математике?
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32525580
®B!N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возьми 4х байтовую переменную...
big=b1<<32+b2<<16+b3<<8+b4; - это для упаковки айпишника

b1=(big&(255<<32))>>32;
b2=(big&(255<<16))>>16;
и так дальше...

типа так...
:)
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32525588
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А я использую MySQL. Там нет встроенных IP функций.
Брехня :
INET_ATON()
INET_NTOA()
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32525677
roman2311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МаксМ ты как всегда прав.

В MySql есть такая функция. Сейчас попробую.

Спасибо всем.
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32525691
®B!N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри, там где 32 замени на 24 :)
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32525779
roman2311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 @B!N Я честно говоря не понял синтаксис. что такое << ?

Мне подсказали на делфефом форуме вот такой алгоритм:

B1 + B2*256 + B3*256*256 + B4*256*256*256

Как я понимаю 4 байта = 4 294 967 296 значений = 32 бита.

если взять адрес 255.255.255.255 то получится:
255+(255*256)+(255*256*256)+(255*256*256*256)= 4 294 967 296

Все совпадает.
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32525827
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
А математика у вас, однако, страдает ;) roman2311если взять адрес 255.255.255.255 то получится:
255+(255*256)+(255*256*256)+(255*256*256*256)= 4 294 967 296если быть точным, то это будет 4 294 967 295
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32526077
®B!N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<< - сдвиг влево
>> - сдвиг вправо
& - логическая операция "и"

<< на число N - это же самое, что умножать на 2 в степени N (только на порядок быстрее).
...
Рейтинг: 0 / 0
Как преобразовать IP в число для хранения в БД
    #32526100
®B!N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опять ганяю....
& - это не логическая, а побитовая операция (хотя тоже логическая, просто она так називается...)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как преобразовать IP в число для хранения в БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]