@EvgMul

Как в PostgreSQL написать запрос, проверяющий диапазон ip адресов?

У меня есть два поля типа inet. Есть ip адрес пользователя. Нужен запрос, который найдет строку, которая подходит под диапазон ip адресов в базе.
Нашел в документации, что есть возможность проверки на вхождение в диапазон (если я правильно понял)
https://www.postgresql.org/docs/8.0/static/functio...
С SQL у меня плоховато и не могу сообразить как составить запрос для этого.
Подскажите пожалуйста, как это сделать?
Заранее благодарен всем отозвавшимся.
  • Вопрос задан
  • 1329 просмотров
Решения вопроса 2
Falseclock
@Falseclock
решаю нестандартные задачи
Например входит ли адрес 192.168.0.100 в сеть 192.168.0.0/24
postgres=# select  inet '192.168.0.100' <<= inet '192.168.0.0/24';
 ?column?
----------
 t
(1 row)


или
Входит ли IP адрес 192.168.2.112 в диапазон между 192.168.0.0 и 192.168.10.255
postgres=# select  inet '192.168.2.112' >= inet '192.168.0.0' AND inet '192.168.2.112' <= inet '192.168.10.255';
 ?column?
----------
 t
(1 row)

postgres=#
Ответ написан
qonand
@qonand
Software Engineer
SELECT * FROM mytable 
WHERE inet '127.0.0.1' >= start_range AND inet '127.0.0.1' <= end_range;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы