Spec-Zone.ru › DuckDB

Расширение inet

Расширение inet определяет тип данных INET для хранения IPv4 и IPv6 адресов Интернета. Оно поддерживает нотацию CIDR для масок подсети (например, 198.51.100.0/22, 2001:db8:3c4d::/48).

Установка и загрузка

Расширение inet будет прозрачно автозагружаться при первом использовании из официального репозитория расширений. Если вы хотите установить и загрузить его вручную, выполните:

INSTALL inet;
LOAD inet;

Примеры

SELECT '127.0.0.1'::INET AS ipv4, '2001:db8:3c4d::/48'::INET AS ipv6;
ipv4 ipv6
127.0.0.1 2001:db8:3c4d::/48
CREATE TABLE tbl (id INTEGER, ip INET);
INSERT INTO tbl VALUES
    (1, '192.168.0.0/16'),
    (2, '127.0.0.1'),
    (3, '8.8.8.8'),
    (4, 'fe80::/10'),
    (5, '2001:db8:3c4d:15::1a2f:1a2b');
SELECT * FROM tbl;
id ip
1 192.168.0.0/16
2 127.0.0.1
3 8.8.8.8
4 fe80::/10
5 2001:db8:3c4d:15::1a2f:1a2b

Операции с INET значениями

INET значения могут сравниваться естественным образом, и IPv4 будет сортироваться раньше IPv6. Кроме того, IP-адреса могут быть изменены путем добавления или вычитания целых чисел.

CREATE TABLE tbl (cidr INET);
INSERT INTO tbl VALUES
    ('127.0.0.1'::INET + 10),
    ('fe80::10'::INET - 9),
    ('127.0.0.1'),
    ('2001:db8:3c4d:15::1a2f:1a2b');
SELECT cidr FROM tbl ORDER BY cidr ASC;
cidr
127.0.0.1
127.0.0.11
2001:db8:3c4d:15::1a2f:1a2b
fe80::7

Функция host

Компонент хоста значения INET может быть извлечён с помощью функции HOST()

CREATE TABLE tbl (cidr INET);
INSERT INTO tbl VALUES
    ('192.168.0.0/16'),
    ('127.0.0.1'),
    ('2001:db8:3c4d:15::1a2f:1a2b/96');
SELECT cidr, host(cidr) FROM tbl;
cidr host(cidr)
192.168.0.0/16 192.168.0.0
127.0.0.1 127.0.0.1
2001:db8:3c4d:15::1a2f:1a2b/96 2001:db8:3c4d:15::1a2f:1a2b

Функции экранирования и деэкранирования HTML

SELECT html_escape('&');
┌──────────────────┐
│ html_escape('&') │
│     varchar      │
├──────────────────┤
│ &            │
└──────────────────┘
SELECT html_unescape('&');
┌────────────────────────┐
│ html_unescape('&') │
│        varchar         │
├────────────────────────┤
│ &                      │
└────────────────────────┘

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/extensions/inet.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API