1

Тема: Поддержка хранения IP адресов в Doctrine

Собственно, реквестирую решение по адекватной обработке и хранению IP адресов в Doctrine. Возможно кому-то попадалось или кто-то сам писал. Если не найдется - придется писать бихевиор самому.

Если кто сходу не понял, суть вопроса состоит в следующем: хранить IP адреса в виде строк в базе крайне нелепо. На данный момент Доктрина предлагает именно такой вариант, поскольку ни специального типа данных для этого поля, ни бихевиора, который бы переводил исходный IP в число и обратно в ней нету. Написать простой "конвертер" туда/обратно - это конечно несложно, строчек пять. Но хочется большего - работа с диапазонами IP и возможность поиска по ним.

Желающие поиметь такую фичу также могут отписаться. Если интерес будет высок - напишу соответствующий бихевиор и выложу в паблик.

2

Re: Поддержка хранения IP адресов в Doctrine

ip2long() ?

3

Re: Поддержка хранения IP адресов в Doctrine

И? Я в курсе про существование этих функций, но кагбэ тупо вставить эту пару в сеттер/геттер - будет действительно тупо. Собственно я ее и имел ввиду, когда говорил про пять строчек. А как это поможет работать с диапазонами и делать поиск по маскам? А во всех where мне потом тоже ручками добавлять эти функции?

Отредактировано relo_san (2010-07-14 15:37:14)

4

Re: Поддержка хранения IP адресов в Doctrine

Сомневаюсь что кто-то такое писал для доктрины, я например даже про такое и не думал, хотя бы потому что не вижу в этом практического смысла, цели..
Другой реализации как отдельную таблицу делать с диапазонами не вижу так как подходящего типа в БД нет, но я рылся когда то в стандартной библиотеке языка D так он использует как раз отдельные структуры данных для IP а точнее классы и то только на достаточно высоком уровне типа всяких преобразований ip2long и т.п. а остальное делается на уровне системы и их реализации протоколов. Так что если очень надо есть смысл покопать исходник linux default/lol