1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
create table pl_inet (
host text, abbrev text, masklen int,
network inet, netmask inet, first inet, last inet
);
create or replace function inet_val(inet) returns pl_inet as '
a = args[0]
[a.host, a.abbrev, a.masklen, a.network, a.netmask,
a.first, a.last]
' language 'plruby';
select * from inet_val('192.168.1'::cidr);
select * from inet_val('192.168.1.226/24'::inet);
select * from inet_val('192.168.1.0/24'::cidr);
select * from inet_val('192.168.1.226'::inet);
select * from inet_val('192.168.1'::cidr);
select * from inet_val('192.168.1.0/24'::inet);
select * from inet_val('192.168.1'::cidr);
select * from inet_val('192.168.1.0/25'::inet);
select * from inet_val('192.168.1'::cidr);
select * from inet_val('192.168.1.255/24'::inet);
select * from inet_val('192.168.1'::cidr);
select * from inet_val('192.168.1.255/25'::inet);
select * from inet_val('10'::cidr);
select * from inet_val('10.1.2.3/8'::inet);
select * from inet_val('10.0.0.0'::cidr);
select * from inet_val('10.1.2.3/8'::inet);
select * from inet_val('10.1.2.3'::cidr);
select * from inet_val('10.1.2.3/32'::inet);
select * from inet_val('10.1.2'::cidr);
select * from inet_val('10.1.2.3/24'::inet);
select * from inet_val('10.1'::cidr);
select * from inet_val('10.1.2.3/16'::inet);
select * from inet_val('10'::cidr);
select * from inet_val('10.1.2.3/8'::inet);
select * from inet_val('10'::cidr);
select * from inet_val('11.1.2.3/8'::inet);
select * from inet_val('10'::cidr);
select * from inet_val('9.1.2.3/8'::inet);
select * from inet_val('10:23::f1'::cidr);
select * from inet_val('10:23::f1/64'::inet);
select * from inet_val('10:23::8000/113'::cidr);
select * from inet_val('10:23::ffff'::inet);
select * from inet_val('::ffff:1.2.3.4'::cidr);
select * from inet_val('::4.3.2.1/24'::inet);
create or replace function mac_cmp(macaddr, macaddr) returns int as '
args[0] <=> args[1]
' language 'plruby';
select mac_cmp('00:07:E9:85:3E:C5'::macaddr, '00:E0:29:3E:E7:25'::macaddr);
create or replace function mac_trunc(macaddr) returns macaddr as '
args[0].truncate
' language 'plruby';
select mac_trunc('00:07:E9:85:3E:C5'::macaddr);
select mac_trunc('00:E0:29:3E:E7:25'::macaddr);
|