powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / inet -> 32-bit integer - как?
7 сообщений из 7, страница 1 из 1
inet -> 32-bit integer - как?
    #32767838
Гравис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли возможность средствапи PL/pgSQL преобразовать inet тип данных (1.2.3.4/24) к 32-битному integer эквиваленту? Например 255.255.255.255 > 4294967295. Ну и наоборот :) Если нет, то как это можно сделать?
...
Рейтинг: 0 / 0
inet -> 32-bit integer - как?
    #32768856
Black Jaguar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Присоединяюсь! Уж больно надо...
...
Рейтинг: 0 / 0
inet -> 32-bit integer - как?
    #32768870
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INT8->VARCHAR
VARCHAR->INT8
незабудте inet к варчару приводить!!!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE OR REPLACE FUNCTION billstat.int82ip(int8)
  RETURNS text AS
'
select  ($1&(255::int4<<24)>>24)::text || \'.\' ||
	($1&(255::int4<<16)>>16)::text || \'.\' ||
	($1&(255::int4<<8)>>8)::text || \'.\' ||
	($1&255)::text
'
  LANGUAGE 'sql' IMMUTABLE;

CREATE OR REPLACE FUNCTION billstat.ip2int8(varchar)
  RETURNS int8 AS
'
select  (split_part($1,\'.\',1)::int8<<24)::int8 +(split_part($1,\'.\',2)::int8<<16)::int8 +(split_part($1,\'.\',3)::int8<<8)::int8 + split_part($1,\'.\',4)::int8;
'
  LANGUAGE 'sql' IMMUTABLE;
...
Рейтинг: 0 / 0
inet -> 32-bit integer - как?
    #32768883
MaximZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
функции такой нет. Придется самому написать.
...
Рейтинг: 0 / 0
inet -> 32-bit integer - как?
    #32768898
MaximZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мдаа, сильно, я и не знал что такое бывает. :)
Особенно первая, впечатляет. :)
...
Рейтинг: 0 / 0
inet -> 32-bit integer - как?
    #32769572
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это все из за того что PG незнает что такое 0xFF000000 и из за того что у посгреса int4 это не совсем int, а signed int, так бы было красивее и понятнее.
...
Рейтинг: 0 / 0
inet -> 32-bit integer - как?
    #32907769
Vlad Rosikhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибки всем :) я тоже этим приёмом воспользовался.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / inet -> 32-bit integer - как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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