powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Функция для преобразования сетки в список ip-адресов
3 сообщений из 3, страница 1 из 1
Функция для преобразования сетки в список ip-адресов
    #35592769
postuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как средствами postgres можно написать функцию преобразования сетки в список ip-адресов.
Например SELECT funct(192.168.1.1/24); должна выдать:
192.168.1.1
192.168.1.2
...
192.168.1.255.
Может есть готовое решение?
...
Рейтинг: 0 / 0
Функция для преобразования сетки в список ip-адресов
    #35592959
DAISER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE OR REPLACE FUNCTION "public"."expand_network" (net cidr) RETURNS SETOF inet AS
$body$
DECLARE
  i integer;
  top integer;
  curinet inet;
BEGIN
  top := ( 2  << ( 31  - masklen(net))) -  2 ;
  curinet := net & netmask(net);
  for i in  1 ..top loop
    curinet := curinet +  1 ;
    return next curinet;
  end loop;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST  100  ROWS  1000 ;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
db=# select * from expand_network('192.168.0.0/29');
 expand_network
----------------
  192 . 168 . 0 . 1 
  192 . 168 . 0 . 2 
  192 . 168 . 0 . 3 
  192 . 168 . 0 . 4 
  192 . 168 . 0 . 5 
  192 . 168 . 0 . 6 
( 6  rows)

Это уже с учетом того, что 192.168.0.0 -- адрес сети, а 192.168.0.7 -- broadcast.
...
Рейтинг: 0 / 0
Функция для преобразования сетки в список ip-адресов
    #35592975
DAISER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если хочется указывать именно адрес, а не сеть, то можно добавить вызов network(inet).
Network Address Functions and Operators
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Функция для преобразования сетки в список ip-адресов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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