try again
This commit is contained in:
parent
92da1c3a6a
commit
2925114933
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# PostgreSQL types for IP and MAC addresses
|
# PostgreSQL types for IP and MAC addresses
|
||||||
#
|
#
|
||||||
# $Id: Makefile,v 1.4 1998/06/16 04:34:29 momjian Exp $
|
# $Id: Makefile,v 1.5 1998/06/16 05:35:10 momjian Exp $
|
||||||
|
|
||||||
all: ip.so mac.so
|
all: ip.so mac.so
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ mac.o: mac.c mac.h
|
|||||||
cc -g -O -fPIC -I/usr/local/pgsql/include -c mac.c
|
cc -g -O -fPIC -I/usr/local/pgsql/include -c mac.c
|
||||||
|
|
||||||
install: ip.so mac.so
|
install: ip.so mac.so
|
||||||
install -c ip.so mac.so /usr/local/pgsql/modules
|
install -c ip.so mac.so /usr/local/pgsql/contrib/ip_and_macs
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *.so *.b
|
rm -f *.o *.so *.b
|
||||||
|
@ -5,8 +5,8 @@ written by (Bergen, Norway, 1998-01-31, Tom Ivar Helbekkmo
|
|||||||
rewritten by me (alex@relcom.EU.net, Aleksei Roudnev, Moscow, Russia,
|
rewritten by me (alex@relcom.EU.net, Aleksei Roudnev, Moscow, Russia,
|
||||||
25.05.98) and written first by Bergen.
|
25.05.98) and written first by Bergen.
|
||||||
|
|
||||||
To see the description of macaddr type, read README.ORIG file.
|
To see the description of macaddr type, read README.ORIG file. To see
|
||||||
To see the description of ipaddr type, read ipaddr.html file.
|
the description of ipaddr type, read ipaddr.html file.
|
||||||
^^^^^^^^^^^
|
^^^^^^^^^^^
|
||||||
|
|
||||||
This ipaddr type differ slightly from the original one. First, if you
|
This ipaddr type differ slightly from the original one. First, if you
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
PostgreSQL type extensions for IP and MAC addresses.
|
PostgreSQL type extensions for IP and MAC addresses.
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
|
|
||||||
$Id: README.ORIG,v 1.1 1998/06/16 04:34:29 momjian Exp $
|
$Id: README.ORIG,v 1.2 1998/06/16 05:35:10 momjian Exp $
|
||||||
|
|
||||||
I needed to record IP and MAC level ethernet addresses in a data
|
I needed to record IP and MAC level ethernet addresses in a data
|
||||||
base, and I really didn't want to store them as plain strings, with
|
base, and I really didn't want to store them as plain strings, with
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* PostgreSQL type definitions for IP addresses.
|
* PostgreSQL type definitions for IP addresses.
|
||||||
*
|
*
|
||||||
* $Id: ip.c,v 1.4 1998/06/16 04:34:29 momjian Exp $
|
* $Id: ip.c,v 1.5 1998/06/16 05:35:10 momjian Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
--
|
--
|
||||||
-- PostgreSQL code for IP addresses.
|
-- PostgreSQL code for IP addresses.
|
||||||
--
|
--
|
||||||
-- $Id: ip.sql,v 1.4 1998/06/16 04:34:30 momjian Exp $
|
-- $Id: ip.sql,v 1.5 1998/06/16 05:35:10 momjian Exp $
|
||||||
-- Invoced from 1998/02/14 17:58:04 scrappy
|
-- Invoced from 1998/02/14 17:58:04 scrappy
|
||||||
--
|
--
|
||||||
-- New - INPUT/OUTPUT, functions, indexing by btree, test.
|
-- New - INPUT/OUTPUT, functions, indexing by btree, test.
|
||||||
-- PART # 1 - ip.sql - load new type, functions and operators.
|
-- PART # 1 - ip.sql - load new type, functions and operators.
|
||||||
-- Then you should execute ipi.sql - add ipaddr_ops class to allow indexing.
|
-- Then you should execute ipi.sql - add ipaddr_ops class to allow indexing.
|
||||||
|
|
||||||
load '/usr/local/pgsql/modules/ip.so';
|
load '/usr/local/pgsql/contrib/ip_and_macs/ip.so';
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Input and output functions and the type itself:
|
-- Input and output functions and the type itself:
|
||||||
@ -20,14 +20,14 @@ load '/usr/local/pgsql/modules/ip.so';
|
|||||||
|
|
||||||
create function ipaddr_in(opaque)
|
create function ipaddr_in(opaque)
|
||||||
returns opaque
|
returns opaque
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
create function ipaddr_out(opaque)
|
create function ipaddr_out(opaque)
|
||||||
returns opaque
|
returns opaque
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create type ipaddr (
|
create type ipaddr (
|
||||||
@ -46,7 +46,7 @@ create type ipaddr (
|
|||||||
drop function ipaddr_print;
|
drop function ipaddr_print;
|
||||||
create function ipaddr_print(ipaddr, text)
|
create function ipaddr_print(ipaddr, text)
|
||||||
returns text
|
returns text
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -58,32 +58,32 @@ create function ipaddr_print(ipaddr, text)
|
|||||||
|
|
||||||
create function ipaddr_lt(ipaddr, ipaddr)
|
create function ipaddr_lt(ipaddr, ipaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function ipaddr_le(ipaddr, ipaddr)
|
create function ipaddr_le(ipaddr, ipaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function ipaddr_eq(ipaddr, ipaddr)
|
create function ipaddr_eq(ipaddr, ipaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function ipaddr_ge(ipaddr, ipaddr)
|
create function ipaddr_ge(ipaddr, ipaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function ipaddr_gt(ipaddr, ipaddr)
|
create function ipaddr_gt(ipaddr, ipaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function ipaddr_ne(ipaddr, ipaddr)
|
create function ipaddr_ne(ipaddr, ipaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -92,7 +92,7 @@ create function ipaddr_ne(ipaddr, ipaddr)
|
|||||||
--
|
--
|
||||||
create function ipaddr_in_net(ipaddr, ipaddr)
|
create function ipaddr_in_net(ipaddr, ipaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -104,7 +104,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_net(ipaddr)
|
create function ipaddr_net(ipaddr)
|
||||||
returns ipaddr
|
returns ipaddr
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -114,7 +114,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_is_net(ipaddr)
|
create function ipaddr_is_net(ipaddr)
|
||||||
returns boolean
|
returns boolean
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -123,7 +123,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_len(ipaddr)
|
create function ipaddr_len(ipaddr)
|
||||||
returns int4
|
returns int4
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -132,7 +132,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_pref(ipaddr)
|
create function ipaddr_pref(ipaddr)
|
||||||
returns int4
|
returns int4
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -142,7 +142,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_integer(ipaddr)
|
create function ipaddr_integer(ipaddr)
|
||||||
returns int4
|
returns int4
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -152,7 +152,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_compose(int4,int4)
|
create function ipaddr_compose(int4,int4)
|
||||||
returns ipaddr
|
returns ipaddr
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -161,7 +161,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_mask(ipaddr)
|
create function ipaddr_mask(ipaddr)
|
||||||
returns ipaddr
|
returns ipaddr
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -170,7 +170,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_bcast(ipaddr)
|
create function ipaddr_bcast(ipaddr)
|
||||||
returns ipaddr
|
returns ipaddr
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -180,7 +180,7 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_cmp(ipaddr,ipaddr)
|
create function ipaddr_cmp(ipaddr,ipaddr)
|
||||||
returns int4
|
returns int4
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -189,12 +189,12 @@ create function ipaddr_in_net(ipaddr, ipaddr)
|
|||||||
|
|
||||||
create function ipaddr_plus(ipaddr,int4)
|
create function ipaddr_plus(ipaddr,int4)
|
||||||
returns ipaddr
|
returns ipaddr
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function ipaddr_minus(ipaddr,int4)
|
create function ipaddr_minus(ipaddr,int4)
|
||||||
returns ipaddr
|
returns ipaddr
|
||||||
as '/usr/local/pgsql/modules/ip.so'
|
as '/usr/local/pgsql/contrib/ip_and_macs/ip.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -1,131 +0,0 @@
|
|||||||
--
|
|
||||||
-- PostgreSQL code for IP addresses.
|
|
||||||
--
|
|
||||||
-- $Id: ip.sql.in,v 1.1 1998/04/22 04:20:30 scrappy Exp $
|
|
||||||
--
|
|
||||||
|
|
||||||
load '_OBJWD_/ip_DLSUFFIX_';
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Input and output functions and the type itself:
|
|
||||||
--
|
|
||||||
|
|
||||||
create function ipaddr_in(opaque)
|
|
||||||
returns opaque
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_out(opaque)
|
|
||||||
returns opaque
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create type ipaddr (
|
|
||||||
internallength = 6,
|
|
||||||
externallength = variable,
|
|
||||||
input = ipaddr_in,
|
|
||||||
output = ipaddr_out
|
|
||||||
);
|
|
||||||
|
|
||||||
--
|
|
||||||
-- The various boolean tests:
|
|
||||||
--
|
|
||||||
|
|
||||||
create function ipaddr_lt(ipaddr, ipaddr)
|
|
||||||
returns bool
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_le(ipaddr, ipaddr)
|
|
||||||
returns bool
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_eq(ipaddr, ipaddr)
|
|
||||||
returns bool
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_ge(ipaddr, ipaddr)
|
|
||||||
returns bool
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_gt(ipaddr, ipaddr)
|
|
||||||
returns bool
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_ne(ipaddr, ipaddr)
|
|
||||||
returns bool
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_in_net(ipaddr, ipaddr)
|
|
||||||
returns bool
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_mask(ipaddr)
|
|
||||||
returns ipaddr
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
create function ipaddr_bcast(ipaddr)
|
|
||||||
returns ipaddr
|
|
||||||
as '_OBJWD_/ip_DLSUFFIX_'
|
|
||||||
language 'c';
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Now the operators. Note how some of the parameters to some
|
|
||||||
-- of the 'create operator' commands are commented out. This
|
|
||||||
-- is because they reference as yet undefined operators, and
|
|
||||||
-- will be implicitly defined when those are, further down.
|
|
||||||
--
|
|
||||||
|
|
||||||
create operator < (
|
|
||||||
leftarg = ipaddr,
|
|
||||||
rightarg = ipaddr,
|
|
||||||
-- negator = >=,
|
|
||||||
procedure = ipaddr_lt
|
|
||||||
);
|
|
||||||
|
|
||||||
create operator <= (
|
|
||||||
leftarg = ipaddr,
|
|
||||||
rightarg = ipaddr,
|
|
||||||
-- negator = >,
|
|
||||||
procedure = ipaddr_le
|
|
||||||
);
|
|
||||||
|
|
||||||
create operator = (
|
|
||||||
leftarg = ipaddr,
|
|
||||||
rightarg = ipaddr,
|
|
||||||
commutator = =,
|
|
||||||
-- negator = <>,
|
|
||||||
procedure = ipaddr_eq
|
|
||||||
);
|
|
||||||
|
|
||||||
create operator >= (
|
|
||||||
leftarg = ipaddr,
|
|
||||||
rightarg = ipaddr,
|
|
||||||
negator = <,
|
|
||||||
procedure = ipaddr_ge
|
|
||||||
);
|
|
||||||
|
|
||||||
create operator > (
|
|
||||||
leftarg = ipaddr,
|
|
||||||
rightarg = ipaddr,
|
|
||||||
negator = <=,
|
|
||||||
procedure = ipaddr_gt
|
|
||||||
);
|
|
||||||
|
|
||||||
create operator <> (
|
|
||||||
leftarg = ipaddr,
|
|
||||||
rightarg = ipaddr,
|
|
||||||
negator = =,
|
|
||||||
procedure = ipaddr_ne
|
|
||||||
);
|
|
||||||
|
|
||||||
--
|
|
||||||
-- eof
|
|
||||||
--
|
|
257
contrib/ip_and_mac/ip_orig.c
Normal file
257
contrib/ip_and_mac/ip_orig.c
Normal file
@ -0,0 +1,257 @@
|
|||||||
|
/*
|
||||||
|
* PostgreSQL type definitions for IP addresses.
|
||||||
|
*
|
||||||
|
* $Id: ip_orig.c,v 1.1 1998/06/16 05:35:11 momjian Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <postgres.h>
|
||||||
|
#include <utils/palloc.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the internal storage format for IP addresses:
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct ipaddr
|
||||||
|
{
|
||||||
|
uint32 address;
|
||||||
|
int16 width;
|
||||||
|
} ipaddr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Various forward declarations:
|
||||||
|
*/
|
||||||
|
|
||||||
|
ipaddr *ipaddr_in(char *str);
|
||||||
|
char *ipaddr_out(ipaddr * addr);
|
||||||
|
|
||||||
|
bool ipaddr_lt(ipaddr * a1, ipaddr * a2);
|
||||||
|
bool ipaddr_le(ipaddr * a1, ipaddr * a2);
|
||||||
|
bool ipaddr_eq(ipaddr * a1, ipaddr * a2);
|
||||||
|
bool ipaddr_ge(ipaddr * a1, ipaddr * a2);
|
||||||
|
bool ipaddr_gt(ipaddr * a1, ipaddr * a2);
|
||||||
|
|
||||||
|
bool ipaddr_ne(ipaddr * a1, ipaddr * a2);
|
||||||
|
|
||||||
|
int4 ipaddr_cmp(ipaddr * a1, ipaddr * a2);
|
||||||
|
|
||||||
|
bool ipaddr_in_net(ipaddr * a1, ipaddr * a2);
|
||||||
|
ipaddr *ipaddr_mask(ipaddr * a);
|
||||||
|
ipaddr *ipaddr_bcast(ipaddr * a);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Build a mask of a given width:
|
||||||
|
*/
|
||||||
|
|
||||||
|
unsigned long
|
||||||
|
build_mask(unsigned char bits)
|
||||||
|
{
|
||||||
|
unsigned long mask = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < bits; i++)
|
||||||
|
mask = (mask >> 1) | 0x80000000;
|
||||||
|
return mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* IP address reader. Note how the count returned by sscanf()
|
||||||
|
* is used to determine whether the mask size was specified.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ipaddr *
|
||||||
|
ipaddr_in(char *str)
|
||||||
|
{
|
||||||
|
int a,
|
||||||
|
b,
|
||||||
|
c,
|
||||||
|
d,
|
||||||
|
w;
|
||||||
|
ipaddr *result;
|
||||||
|
int count;
|
||||||
|
|
||||||
|
if (strlen(str) > 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
count = sscanf(str, "%d.%d.%d.%d/%d", &a, &b, &c, &d, &w);
|
||||||
|
|
||||||
|
if (count < 4)
|
||||||
|
{
|
||||||
|
elog(ERROR, "ipaddr_in: error in parsing \"%s\"", str);
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count == 4)
|
||||||
|
w = 32;
|
||||||
|
|
||||||
|
if ((a < 0) || (a > 255) || (b < 0) || (b > 255) ||
|
||||||
|
(c < 0) || (c > 255) || (d < 0) || (d > 255) ||
|
||||||
|
(w < 0) || (w > 32))
|
||||||
|
{
|
||||||
|
elog(ERROR, "ipaddr_in: illegal address \"%s\"", str);
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
a = b = c = d = w = 0; /* special case for missing address */
|
||||||
|
}
|
||||||
|
|
||||||
|
result = (ipaddr *) palloc(sizeof(ipaddr));
|
||||||
|
|
||||||
|
result->address = (uint32) ((a << 24) | (b << 16) | (c << 8) | d);
|
||||||
|
result->address &= build_mask(w);
|
||||||
|
result->width = w;
|
||||||
|
|
||||||
|
return (result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* IP address output function. Note mask size specification
|
||||||
|
* generated only for subnets, not for plain host addresses.
|
||||||
|
*/
|
||||||
|
|
||||||
|
char *
|
||||||
|
ipaddr_out(ipaddr * addr)
|
||||||
|
{
|
||||||
|
char *result;
|
||||||
|
|
||||||
|
if (addr == NULL)
|
||||||
|
return (NULL);
|
||||||
|
|
||||||
|
result = (char *) palloc(32);
|
||||||
|
|
||||||
|
if (addr->address > 0)
|
||||||
|
{
|
||||||
|
if (addr->width == 32)
|
||||||
|
sprintf(result, "%d.%d.%d.%d",
|
||||||
|
(addr->address >> 24) & 0xff,
|
||||||
|
(addr->address >> 16) & 0xff,
|
||||||
|
(addr->address >> 8) & 0xff,
|
||||||
|
addr->address & 0xff);
|
||||||
|
else
|
||||||
|
sprintf(result, "%d.%d.%d.%d/%d",
|
||||||
|
(addr->address >> 24) & 0xff,
|
||||||
|
(addr->address >> 16) & 0xff,
|
||||||
|
(addr->address >> 8) & 0xff,
|
||||||
|
addr->address & 0xff,
|
||||||
|
addr->width);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result[0] = 0; /* special case for missing address */
|
||||||
|
}
|
||||||
|
return (result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Boolean tests for magnitude.
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool
|
||||||
|
ipaddr_lt(ipaddr * a1, ipaddr * a2)
|
||||||
|
{
|
||||||
|
return (a1->address < a2->address);
|
||||||
|
};
|
||||||
|
|
||||||
|
bool
|
||||||
|
ipaddr_le(ipaddr * a1, ipaddr * a2)
|
||||||
|
{
|
||||||
|
return (a1->address <= a2->address);
|
||||||
|
};
|
||||||
|
|
||||||
|
bool
|
||||||
|
ipaddr_eq(ipaddr * a1, ipaddr * a2)
|
||||||
|
{
|
||||||
|
return (a1->address == a2->address);
|
||||||
|
};
|
||||||
|
|
||||||
|
bool
|
||||||
|
ipaddr_ge(ipaddr * a1, ipaddr * a2)
|
||||||
|
{
|
||||||
|
return (a1->address >= a2->address);
|
||||||
|
};
|
||||||
|
|
||||||
|
bool
|
||||||
|
ipaddr_gt(ipaddr * a1, ipaddr * a2)
|
||||||
|
{
|
||||||
|
return (a1->address > a2->address);
|
||||||
|
};
|
||||||
|
|
||||||
|
bool
|
||||||
|
ipaddr_ne(ipaddr * a1, ipaddr * a2)
|
||||||
|
{
|
||||||
|
return (a1->address != a2->address);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Comparison function for sorting:
|
||||||
|
*/
|
||||||
|
|
||||||
|
int4
|
||||||
|
ipaddr_cmp(ipaddr * a1, ipaddr * a2)
|
||||||
|
{
|
||||||
|
if (a1->address < a2->address)
|
||||||
|
return -1;
|
||||||
|
else if (a1->address > a2->address)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test whether an address is within a given subnet:
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool
|
||||||
|
ipaddr_in_net(ipaddr * a1, ipaddr * a2)
|
||||||
|
{
|
||||||
|
uint32 maskbits;
|
||||||
|
|
||||||
|
if (a1->width < a2->width)
|
||||||
|
return FALSE;
|
||||||
|
if ((a1->width == 32) && (a2->width == 32))
|
||||||
|
return ipaddr_eq(a1, a2);
|
||||||
|
maskbits = build_mask(a2->width);
|
||||||
|
if ((a1->address & maskbits) == (a2->address & maskbits))
|
||||||
|
return TRUE;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Pick out just the mask of a network:
|
||||||
|
*/
|
||||||
|
|
||||||
|
ipaddr *
|
||||||
|
ipaddr_mask(ipaddr * a)
|
||||||
|
{
|
||||||
|
ipaddr *result;
|
||||||
|
|
||||||
|
result = (ipaddr *) palloc(sizeof(ipaddr));
|
||||||
|
result->address = build_mask(a->width);
|
||||||
|
result->width = 32;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return the broadcast address of a network:
|
||||||
|
*/
|
||||||
|
|
||||||
|
ipaddr *
|
||||||
|
ipaddr_bcast(ipaddr * a)
|
||||||
|
{
|
||||||
|
ipaddr *result;
|
||||||
|
|
||||||
|
result = (ipaddr *) palloc(sizeof(ipaddr));
|
||||||
|
result->address = a->address;
|
||||||
|
result->address |= (build_mask(32 - a->width) >> a->width);
|
||||||
|
result->width = 32;
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* eof
|
||||||
|
*/
|
488
contrib/ip_and_mac/ipaddr.html
Normal file
488
contrib/ip_and_mac/ipaddr.html
Normal file
@ -0,0 +1,488 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||||||
|
<HTML>
|
||||||
|
<HEAD>
|
||||||
|
<TITLE></TITLE>
|
||||||
|
<META NAME="GENERATOR" CONTENT="Mozilla/3.04Gold (X11; I; FreeBSD 2.2.5-RELEASE i386) [Netscape]">
|
||||||
|
</HEAD>
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<H2>New object class for the IP ADDRESSES manipulations.</H2>
|
||||||
|
|
||||||
|
<H3>1. Description:</H3>
|
||||||
|
|
||||||
|
<UL>
|
||||||
|
<P>Type name: <B>ipaddr<BR>
|
||||||
|
</B>Data lenght: <B>6 bytes<BR>
|
||||||
|
</B>Data context: <B>ip address and prefix length</B></P>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H3><B>2. How to install:</B></H3>
|
||||||
|
|
||||||
|
<UL>
|
||||||
|
<P>Use script <B>ip.sql </B>to add new type, new functions and operators
|
||||||
|
to the data base.</P>
|
||||||
|
|
||||||
|
<P>Use script <B>ipi.sql </B>to add new type and new operator class ipaddr_ops
|
||||||
|
to the index system and allow indexing by this new type (with search by
|
||||||
|
'<B>></B>', '<B>>=</B>', '<B><</B>', '<B><=</B>', '<B>=</B>'
|
||||||
|
boolean operators).</P>
|
||||||
|
|
||||||
|
<P>Use scripts '<B>test1.sql'</B> and '<B>test2.sql'</B> (edit second script
|
||||||
|
first) to check if indexing work properly.</P>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H3>3. Input / output formsts.</H3>
|
||||||
|
|
||||||
|
<P>New type stores IP address and IP prefix in the single data attribute.
|
||||||
|
To input data, you should use the form</P>
|
||||||
|
|
||||||
|
<UL>
|
||||||
|
<P><B><I>DDD</I>.<I>DDD</I>.<I>DDD</I>.<I>DDD</I>/<I>P</I>P</B></P>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<P>for the address <B>DDD.DDD.DDD.DDD</B> and prefix <B>PP</B> (prefix
|
||||||
|
is len from 0 (for 0.0.0.0) to 32 (for 255.255.255.255)). You can miss
|
||||||
|
/PP n two cases:</P>
|
||||||
|
|
||||||
|
<UL>
|
||||||
|
<LI>You enter host address (this means /32 prefix) and this is not the
|
||||||
|
address of the natural class A, B or C network.</LI>
|
||||||
|
|
||||||
|
<LI>You enter natural class A, B, C network with the /8, /16 and /24 prefix.</LI>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<P>For example, <B>193.124.23.0</B> should be read as '<B>193.124.23.0/24</B>'
|
||||||
|
network, and '<B>193.124.23.1</B>' should be read as <B>/32 </B>host address.
|
||||||
|
To enter interface address <B>193.124.23.6/24</B>, you should use exact
|
||||||
|
form '<B>193.124.23.6/24'</B>.</P>
|
||||||
|
|
||||||
|
<P>The address '0.0.0.0' means '0.0.0.0/0', this is <B>default</B> in terms
|
||||||
|
of routers.</P>
|
||||||
|
|
||||||
|
<P><B>ipaddr</B> type data are printed just in the same form (to allow
|
||||||
|
input/output compatibility) - <B>193.124.23.0/24</B> should be printed
|
||||||
|
as '<B>193.124.23.0</B>' and '<B>193.124.23.1/32</B>' should be printed
|
||||||
|
as '<B>193.124.23.1</B>'.</P>
|
||||||
|
|
||||||
|
<P>There is special function to convert ipaddr data into string by the
|
||||||
|
format:</P>
|
||||||
|
|
||||||
|
<UL>
|
||||||
|
<P>char ipaddr_print(ipaddr,format)</P>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<P>format consist of plain text and %C special characters:</P>
|
||||||
|
|
||||||
|
<UL>
|
||||||
|
<P><B>%A</B> - address in form ddd.ddd.ddd.ddd,<BR>
|
||||||
|
<B>%M </B>- network mask in form ddd.ddd.ddd.ddd,<BR>
|
||||||
|
<B>%B </B>- negated mask ('0.0.0.7' for '/29' prefix, for example),<BR>
|
||||||
|
<B>%P</B> - prefix (withouth '/' delimiter).</P>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H3>4. Operators.</H3>
|
||||||
|
|
||||||
|
<TABLE ALIGN=ABSCENTER BORDER=2 CELLSPACING=0 CELLPADDING=0 >
|
||||||
|
<TR>
|
||||||
|
<TD>Left argument<BR>
|
||||||
|
A1</TD>
|
||||||
|
|
||||||
|
<TD>Op</TD>
|
||||||
|
|
||||||
|
<TD>Right argument<BR>
|
||||||
|
A2</TD>
|
||||||
|
|
||||||
|
<TD>Result<BR>
|
||||||
|
R</TD>
|
||||||
|
|
||||||
|
<TD>Description</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD><</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare addresses, if they are equal, compare prefixes,</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD><=</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare addresses, if they are equal, compare prefixes,</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>=</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare addresses, if they are equal, compare prefixes,</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>>=</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare addresses, if they are equal, compare prefixes,</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>></TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare addresses, if they are equal, compare prefixes,</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD><></TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare addresses, if they are equal, compare prefixes,</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>@</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>True if A1 is the part of network (subnetwork) A2 or if A1 = A2</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>+</TD>
|
||||||
|
|
||||||
|
<TD>int4</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>Increase address A1 on A2 value (A2 is integer).</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr </TD>
|
||||||
|
|
||||||
|
<TD>-</TD>
|
||||||
|
|
||||||
|
<TD>int4</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>Decrease address A1 on A2.</TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<H3>5. Functions.</H3>
|
||||||
|
|
||||||
|
<P>There is a lot of functions defined for new ipaddr data type. Some of
|
||||||
|
them are duplicated by operators described above, some are not. </P>
|
||||||
|
|
||||||
|
<TABLE ALIGN=ABSCENTER BORDER=2 CELLSPACING=0 CELLPADDING=0 >
|
||||||
|
<TR>
|
||||||
|
<TD>Function(arguments)</TD>
|
||||||
|
|
||||||
|
<TD>Function type</TD>
|
||||||
|
|
||||||
|
<TD>Description</TD>
|
||||||
|
|
||||||
|
<TD>Operator</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_print(ipaddr, text)</TD>
|
||||||
|
|
||||||
|
<TD>text</TD>
|
||||||
|
|
||||||
|
<TD>Converts ipaddr to the text string by format from the second argument.
|
||||||
|
Format can contain %A - address, %M - mask, %B - reversed mask, %P - prefix,
|
||||||
|
and any other characters.</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_lt(ipaddr, ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare by '<'</TD>
|
||||||
|
|
||||||
|
<TD><</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_le(ipaddr,ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare by '<='</TD>
|
||||||
|
|
||||||
|
<TD><=</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_eq(ipaddr, ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare by '='</TD>
|
||||||
|
|
||||||
|
<TD>=</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_ne(ipaddr, ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare by '<>'</TD>
|
||||||
|
|
||||||
|
<TD><></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_ge(ipaddr, ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare by '>='</TD>
|
||||||
|
|
||||||
|
<TD>>=</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_gt(ipaddr, ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD>Compare by '>'</TD>
|
||||||
|
|
||||||
|
<TD>></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_in_net(ipaddr, ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD><B>True</B> if fisrt argument is the host or subnetwork of the second
|
||||||
|
argument (first address is equal or included into the second one)</TD>
|
||||||
|
|
||||||
|
<TD>@</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_net(ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>Return the network (with the 0 in host bits) for the argument; for
|
||||||
|
example ipaddr_net('193.124.23.1/24') = '193.124.23.0';</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_bcast(ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>Return broadcast address (with the /32 prefix) for the network described
|
||||||
|
by argument.</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_is_net(ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>boolean</TD>
|
||||||
|
|
||||||
|
<TD><B>True</B> if ipaddr is network address; <B>false</B> if its' the
|
||||||
|
host in the network. For the /32 addresses, returns <B>false</B>.</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_mask(ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>Return netmask (with /32 prefix) for the network.</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_prefix(ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>int4</TD>
|
||||||
|
|
||||||
|
<TD>Return the prefix size (from 0 to 32).</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_len(ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>int4</TD>
|
||||||
|
|
||||||
|
<TD>Return the number of addresses in the particular network (for example,
|
||||||
|
256 for /24 prefix).</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_integer(ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>int4</TD>
|
||||||
|
|
||||||
|
<TD>Return IP address (withouth the prefix) as integer.</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_compose(int4,int4)</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>Compose ipaddr object from ip address (first argument) and prefix lenght
|
||||||
|
(second argument). ipaddr_compose(ipaddr_integer(a),ipaddr_prefix(a)) =
|
||||||
|
a.</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_plus(ipaddr, int4)</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>Operator PLUS (addres increased, prefix does not changed)</TD>
|
||||||
|
|
||||||
|
<TD>+</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_minus(ipaddr, int4)</TD>
|
||||||
|
|
||||||
|
<TD>ipaddr</TD>
|
||||||
|
|
||||||
|
<TD>Operator MINUS (address decreased, prefix does not changed).</TD>
|
||||||
|
|
||||||
|
<TD>-</TD>
|
||||||
|
</TR>
|
||||||
|
|
||||||
|
<TR>
|
||||||
|
<TD>ipaddr_cmp(ipaddr, ipaddr)</TD>
|
||||||
|
|
||||||
|
<TD>int4</TD>
|
||||||
|
|
||||||
|
<TD>Compare it's arguments and return -1, 0 or +1.</TD>
|
||||||
|
|
||||||
|
<TD></TD>
|
||||||
|
</TR>
|
||||||
|
</TABLE>
|
||||||
|
|
||||||
|
<H3>5. Usage.</H3>
|
||||||
|
|
||||||
|
<P>New type opens many interesting futures for the ip routing or ip accounting
|
||||||
|
networks. For example, you can search all interfaces connected to the same
|
||||||
|
phisical network by comparing ipaddr_net(interface_address) /if you store
|
||||||
|
address as address/prefix pair in the single attribute, and so on.</P>
|
||||||
|
|
||||||
|
<P>Unfortunately, I had not time (and was not too familiar with RTree ideas
|
||||||
|
used in Postgres) to check if it's possible to use RTree indexing for the
|
||||||
|
fast routing lookups by data base. It's important task because usial usage
|
||||||
|
of this future is _determine the nearest network the particular address
|
||||||
|
contain to, and link the accounting record to this network_. And so on.</P>
|
||||||
|
|
||||||
|
<P>Write any questions or wishes to me by e-mail. This is BETA version
|
||||||
|
of this package for now, because we are building our IP routing data base
|
||||||
|
just now and did not tested all this fucntions under heavy conditions;
|
||||||
|
through I hope this functions are too simple for the hidden bugs, and they
|
||||||
|
was tested carefully at the simple tests.</P>
|
||||||
|
|
||||||
|
<H3>6. Installation.</H3>
|
||||||
|
|
||||||
|
<OL>
|
||||||
|
<LI>Translate shared library ip.so:<BR>
|
||||||
|
make</LI>
|
||||||
|
|
||||||
|
<LI>Install shared library to the proper place (/usr/local/pgsql/contrib/ip_and_macs)<BR>
|
||||||
|
make install<BR>
|
||||||
|
(in case if your system is not FreeBSD, it can be nessesary modify 'Makefile'
|
||||||
|
before).</LI>
|
||||||
|
|
||||||
|
<LI>Public to the accessible place scripts ip.sql (installation of data
|
||||||
|
type), ipi.sql (describing of this data type for the proper indexing),
|
||||||
|
test1.sql, test2.sql, test.DATA (test and data). Modify test1.sql in accordance
|
||||||
|
to real location of the data files.</LI>
|
||||||
|
|
||||||
|
<LI>To add new data type into your data base, exec scripts in this data
|
||||||
|
base:<BR>
|
||||||
|
psql DATA_BASE<BR>
|
||||||
|
\i ip.sql -- change this to the real location<BR>
|
||||||
|
\i ipi.sql -- change this to the real location</LI>
|
||||||
|
|
||||||
|
<LI>To test this data type, exec test1.sql and test2.sql SQL scripts.</LI>
|
||||||
|
</OL>
|
||||||
|
|
||||||
|
<H3>7. Download.</H3>
|
||||||
|
|
||||||
|
<P>You can download this data type from <B>http://relcom.EU.net/ip_class.tar.gz</B></P>
|
||||||
|
|
||||||
|
<H3><BR>
|
||||||
|
</H3>
|
||||||
|
|
||||||
|
<P>
|
||||||
|
<HR WIDTH="100%"></P>
|
||||||
|
|
||||||
|
<P>Aleksei Roudnev, The Network Operation Centre, Relcom Network; Moscow,
|
||||||
|
Russia.</P>
|
||||||
|
|
||||||
|
<UL><B></B></UL>
|
||||||
|
|
||||||
|
<UL></UL>
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
64
contrib/ip_and_mac/ipi.sql
Normal file
64
contrib/ip_and_mac/ipi.sql
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
begin;
|
||||||
|
select pgam.oid from pg_am pgam
|
||||||
|
where amname = 'btree';
|
||||||
|
--
|
||||||
|
-- Temporary oper table
|
||||||
|
--
|
||||||
|
-- drop table tmp_op;
|
||||||
|
create table tmp_op ( oprname name, opi int2);
|
||||||
|
--
|
||||||
|
-- Fill in this table
|
||||||
|
--
|
||||||
|
insert into tmp_op values('<','1');
|
||||||
|
insert into tmp_op values('<=','2');
|
||||||
|
insert into tmp_op values('=','3');
|
||||||
|
insert into tmp_op values('>=','4');
|
||||||
|
insert into tmp_op values('>','5');
|
||||||
|
select * from tmp_op;
|
||||||
|
--
|
||||||
|
-- Add record to the pg_opclass
|
||||||
|
--
|
||||||
|
DELETE FROM pg_opclass WHERE opcname = 'ipaddr_ops';
|
||||||
|
INSERT INTO pg_opclass (opcname,opcdeftype)
|
||||||
|
select 'ipaddr_ops',oid from pg_type where typname = 'ipaddr';
|
||||||
|
--
|
||||||
|
-- And determine oid
|
||||||
|
--
|
||||||
|
SELECT opc.oid,opc.opcname
|
||||||
|
FROM pg_opclass opc
|
||||||
|
WHERE opc.opcname = 'ipaddr_ops';
|
||||||
|
--
|
||||||
|
SELECT o.oid AS opoid, o.oprname
|
||||||
|
INTO TABLE ipaddr_tmp
|
||||||
|
FROM pg_operator o, pg_type t
|
||||||
|
WHERE o.oprleft = t.oid and o.oprright = t.oid and t.typname = 'ipaddr';
|
||||||
|
SELECT * FROM ipaddr_tmp;
|
||||||
|
--
|
||||||
|
INSERT INTO pg_amop (amopid, amopclaid, amopopr, amopstrategy, amopselect, amopnpages)
|
||||||
|
SELECT am.oid,opcl.oid,c.opoid,t.opi,'btreesel'::regproc, 'btreenpage'::regproc
|
||||||
|
FROM pg_am am, pg_opclass opcl, ipaddr_tmp c, tmp_op t
|
||||||
|
WHERE t.oprname = c.oprname
|
||||||
|
and amname = 'btree'
|
||||||
|
and opcname = 'ipaddr_ops';
|
||||||
|
--
|
||||||
|
SELECT prc.oid, prc.proname FROM pg_proc prc
|
||||||
|
WHERE prc.proname = 'ipaddr_cmp';
|
||||||
|
--
|
||||||
|
INSERT INTO pg_amproc (amid, amopclaid, amproc, amprocnum)
|
||||||
|
SELECT pgam.oid, opc.oid,prc.oid,'1'::int2
|
||||||
|
FROM pg_am pgam,
|
||||||
|
pg_opclass opc,
|
||||||
|
pg_proc prc
|
||||||
|
WHERE prc.proname = 'ipaddr_cmp'
|
||||||
|
and pgam.amname = 'btree'
|
||||||
|
and opc.opcname = 'ipaddr_ops';
|
||||||
|
|
||||||
|
drop table tmp_op;
|
||||||
|
DROP TABLE ipaddr_tmp;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- *****************************************************************
|
||||||
|
-- * Now you should test this by running test1.sql and test2.sql *
|
||||||
|
-- * In test2, be sure the 'explain' operator show you *
|
||||||
|
-- * search by index in the last line of output *
|
||||||
|
-- *****************************************************************
|
@ -1,10 +1,10 @@
|
|||||||
--
|
--
|
||||||
-- PostgreSQL code for MAC addresses.
|
-- PostgreSQL code for MAC addresses.
|
||||||
--
|
--
|
||||||
-- $Id: mac.sql.in,v 1.1 1998/04/22 04:20:36 scrappy Exp $
|
-- $Id: mac.sql,v 1.4 1998/06/16 05:35:11 momjian Exp $
|
||||||
--
|
--
|
||||||
|
|
||||||
load '_OBJWD_/mac_DLSUFFIX_';
|
load '/usr/local/pgsql/contrib/ip_and_macs/mac.so';
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Input and output functions and the type itself:
|
-- Input and output functions and the type itself:
|
||||||
@ -12,12 +12,12 @@ load '_OBJWD_/mac_DLSUFFIX_';
|
|||||||
|
|
||||||
create function macaddr_in(opaque)
|
create function macaddr_in(opaque)
|
||||||
returns opaque
|
returns opaque
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function macaddr_out(opaque)
|
create function macaddr_out(opaque)
|
||||||
returns opaque
|
returns opaque
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create type macaddr (
|
create type macaddr (
|
||||||
@ -33,32 +33,32 @@ create type macaddr (
|
|||||||
|
|
||||||
create function macaddr_lt(macaddr, macaddr)
|
create function macaddr_lt(macaddr, macaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function macaddr_le(macaddr, macaddr)
|
create function macaddr_le(macaddr, macaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function macaddr_eq(macaddr, macaddr)
|
create function macaddr_eq(macaddr, macaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function macaddr_ge(macaddr, macaddr)
|
create function macaddr_ge(macaddr, macaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function macaddr_gt(macaddr, macaddr)
|
create function macaddr_gt(macaddr, macaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
create function macaddr_ne(macaddr, macaddr)
|
create function macaddr_ne(macaddr, macaddr)
|
||||||
returns bool
|
returns bool
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
||||||
@ -117,7 +117,7 @@ create operator <> (
|
|||||||
|
|
||||||
create function macaddr_manuf(macaddr)
|
create function macaddr_manuf(macaddr)
|
||||||
returns text
|
returns text
|
||||||
as '_OBJWD_/mac_DLSUFFIX_'
|
as '/usr/local/pgsql/contrib/ip_and_macs/mac.so'
|
||||||
language 'c';
|
language 'c';
|
||||||
|
|
||||||
--
|
--
|
5
contrib/ip_and_mac/t1.sql
Normal file
5
contrib/ip_and_mac/t1.sql
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
insert into xx values('193.124.23.2','host2');
|
||||||
|
insert into xx values('193.124.23.3','host3');
|
||||||
|
insert into xx values('193.124.22.1','host4');
|
||||||
|
insert into xx values('193.124.22.2','host5');
|
||||||
|
insert into xx values('193.124.22.3','host6');
|
999
contrib/ip_and_mac/test.DATA
Normal file
999
contrib/ip_and_mac/test.DATA
Normal file
@ -0,0 +1,999 @@
|
|||||||
|
193.125.80.35 193.232.202.80 2 880
|
||||||
|
193.125.80.35 194.87.0.22 2 574
|
||||||
|
194.87.42.38 195.16.106.31 262 10696
|
||||||
|
204.62.245.169 193.125.24.10 14 833
|
||||||
|
193.125.80.35 195.24.128.65 3 180
|
||||||
|
193.125.80.35 195.54.2.1 2 630
|
||||||
|
193.125.80.35 195.54.192.33 7 448
|
||||||
|
194.87.42.38 195.16.106.22 14 736
|
||||||
|
193.125.80.35 195.210.140.7 3 1068
|
||||||
|
194.87.41.131 195.46.160.46 10 681
|
||||||
|
194.87.37.2 194.135.213.244 66 9088
|
||||||
|
194.87.36.193 195.9.53.1 8 464
|
||||||
|
194.87.36.193 194.135.2.7 8 464
|
||||||
|
194.87.36.1 195.24.224.1 2 716
|
||||||
|
194.87.34.44 195.16.96.2 2 164
|
||||||
|
194.87.31.230 195.46.160.92 10 757
|
||||||
|
194.87.24.93 195.46.160.46 9 664
|
||||||
|
194.87.24.93 195.16.104.35 8 598
|
||||||
|
194.87.23.28 195.210.155.149 22 1249
|
||||||
|
194.87.22.107 195.46.160.34 76 3630
|
||||||
|
194.87.18.152 195.90.162.2 15 666
|
||||||
|
194.87.18.152 195.90.128.107 1 66
|
||||||
|
193.125.80.35 62.76.114.44 2 880
|
||||||
|
194.87.16.174 195.46.160.120 17 2276
|
||||||
|
204.62.245.168 194.226.45.36 8 444
|
||||||
|
194.87.16.78 195.16.104.35 8 720
|
||||||
|
194.87.16.61 195.16.96.22 29 1248
|
||||||
|
194.87.16.39 194.220.215.66 324 25148
|
||||||
|
194.87.16.10 195.128.133.65 57 4301
|
||||||
|
194.87.16.10 194.135.176.121 237 18379
|
||||||
|
193.125.80.38 194.84.69.5 21 1929
|
||||||
|
193.125.80.38 212.46.1.30 40 3758
|
||||||
|
204.62.245.168 144.206.160.32 8 450
|
||||||
|
193.125.80.44 195.151.199.4 45 2520
|
||||||
|
194.87.15.158 195.46.160.46 2 112
|
||||||
|
193.125.80.60 193.232.127.78 2 880
|
||||||
|
193.125.80.60 193.232.202.80 2 864
|
||||||
|
194.87.15.138 195.16.110.7 2 112
|
||||||
|
193.125.80.60 195.96.65.2 2 864
|
||||||
|
194.87.15.138 193.124.110.130 2 112
|
||||||
|
194.87.15.1 195.90.130.133 3 84
|
||||||
|
193.125.80.144 212.46.4.3 311 21140
|
||||||
|
193.125.80.163 194.84.132.222 261 110114
|
||||||
|
193.125.80.163 194.87.12.50 582 38097
|
||||||
|
193.125.80.163 194.87.13.2 34 2499
|
||||||
|
194.87.14.221 195.46.165.215 5 382
|
||||||
|
193.125.81.139 195.34.34.70 107 7799
|
||||||
|
193.125.81.140 194.67.115.130 5 220
|
||||||
|
204.62.245.167 195.222.130.72 9 475
|
||||||
|
204.62.245.167 193.125.242.225 2 88
|
||||||
|
194.87.14.221 195.46.163.47 117 99564
|
||||||
|
193.125.81.146 194.87.5.3 12 672
|
||||||
|
193.125.81.146 194.87.12.50 4 224
|
||||||
|
193.125.81.146 194.87.13.2 5 280
|
||||||
|
194.87.14.221 195.46.162.91 137 21211
|
||||||
|
193.125.81.146 195.161.0.34 2 112
|
||||||
|
193.125.81.146 195.218.135.39 2 112
|
||||||
|
194.87.14.221 195.12.32.8 131 132002
|
||||||
|
194.87.14.221 193.124.252.73 530 214220
|
||||||
|
193.125.81.148 194.67.146.145 201 8040
|
||||||
|
193.125.81.148 194.87.5.3 49 3140
|
||||||
|
193.125.81.148 194.87.12.50 230 12526
|
||||||
|
193.125.81.148 194.87.13.2 31 2042
|
||||||
|
194.87.14.216 195.210.154.154 68 32028
|
||||||
|
193.125.81.148 194.190.218.2 8 611
|
||||||
|
193.125.81.148 195.161.0.34 17 1473
|
||||||
|
193.125.81.148 195.218.135.39 245 16647
|
||||||
|
193.125.81.152 193.193.192.2 215 14797
|
||||||
|
193.125.81.152 194.87.13.2 12 748
|
||||||
|
193.125.81.152 195.24.128.65 27 1896
|
||||||
|
193.125.81.152 195.54.192.118 53 3209
|
||||||
|
194.87.14.216 195.210.154.152 83 81270
|
||||||
|
193.125.84.12 195.46.160.45 47 2373
|
||||||
|
193.125.84.154 195.90.128.107 1 62
|
||||||
|
193.125.84.154 195.90.140.2 1 62
|
||||||
|
194.87.14.203 195.210.130.62 6 821
|
||||||
|
194.87.14.152 195.46.160.69 12 2172
|
||||||
|
193.125.86.4 195.19.32.1 176 89133
|
||||||
|
194.87.14.73 195.90.162.2 41 42955
|
||||||
|
194.87.14.53 195.46.162.75 149 138236
|
||||||
|
194.87.14.51 195.210.190.19 19 10290
|
||||||
|
194.87.14.6 195.46.163.31 22 24836
|
||||||
|
193.125.90.34 194.87.161.7 2 208
|
||||||
|
193.125.90.34 194.87.161.229 13 8867
|
||||||
|
193.125.90.34 195.54.17.33 644 81839
|
||||||
|
194.87.14.5 193.124.97.131 53 12784
|
||||||
|
193.125.90.130 194.58.95.62 82 7119
|
||||||
|
194.87.13.26 212.248.36.8 14 7757
|
||||||
|
194.87.13.26 195.98.162.111 80 39391
|
||||||
|
194.87.13.26 195.98.161.25 70 76902
|
||||||
|
194.87.13.26 195.46.165.196 30 14838
|
||||||
|
194.87.13.26 195.46.161.219 47 39327
|
||||||
|
193.125.95.121 193.124.1.131 248 101051
|
||||||
|
194.87.13.26 194.85.149.13 28 24599
|
||||||
|
194.87.13.21 195.98.162.9 32 16101
|
||||||
|
194.87.13.21 195.90.136.148 84 93861
|
||||||
|
193.125.95.121 194.186.254.26 79 5470
|
||||||
|
194.87.13.21 195.46.162.244 10 400
|
||||||
|
194.87.13.21 195.12.32.182 96 53171
|
||||||
|
194.87.13.20 212.248.36.8 14 6798
|
||||||
|
194.87.13.20 212.20.8.250 358 438254
|
||||||
|
194.87.13.20 195.222.130.242 4 550
|
||||||
|
194.87.13.20 195.222.130.77 8 6753
|
||||||
|
193.125.95.124 192.124.176.69 4 538
|
||||||
|
193.125.95.124 193.124.5.54 2 126
|
||||||
|
194.87.13.20 195.210.143.145 4 168
|
||||||
|
193.125.95.124 193.124.110.129 21 2181
|
||||||
|
193.125.95.124 193.124.148.81 2 310
|
||||||
|
194.87.13.20 195.210.136.25 4 626
|
||||||
|
193.125.95.124 194.67.2.97 3 382
|
||||||
|
193.125.95.124 194.84.222.2 3 382
|
||||||
|
194.87.13.20 195.208.94.133 115 122276
|
||||||
|
194.87.13.20 195.182.129.11 15 17177
|
||||||
|
194.87.13.20 195.170.195.70 14 14313
|
||||||
|
204.62.245.167 193.124.97.135 9 472
|
||||||
|
194.87.13.20 195.144.198.159 90 40576
|
||||||
|
194.87.13.20 195.144.192.198 79 91293
|
||||||
|
193.125.95.124 195.222.130.67 9 745
|
||||||
|
194.87.13.20 195.128.144.246 14 12816
|
||||||
|
194.87.13.20 195.128.140.71 17 15901
|
||||||
|
194.87.13.20 195.128.140.3 44 47802
|
||||||
|
194.87.13.20 195.128.132.20 25 27119
|
||||||
|
194.87.13.20 195.128.128.98 28 15369
|
||||||
|
194.87.13.20 195.98.162.188 2 3000
|
||||||
|
193.125.98.254 194.190.170.19 26 1456
|
||||||
|
193.125.98.254 195.72.225.204 73 4088
|
||||||
|
204.62.245.166 195.9.80.194 2 88
|
||||||
|
204.62.245.161 193.124.182.40 2 138
|
||||||
|
204.62.132.32 193.124.97.131 3 618
|
||||||
|
193.125.103.137 195.46.163.141 7 372
|
||||||
|
194.87.13.20 195.98.162.170 4 628
|
||||||
|
193.125.121.1 193.124.22.22 2 136
|
||||||
|
193.125.121.121 194.85.157.200 790 31921
|
||||||
|
193.125.125.253 193.124.22.65 80 5411
|
||||||
|
193.125.127.42 193.124.22.65 18 1368
|
||||||
|
193.125.127.42 194.190.170.19 1227 63804
|
||||||
|
194.87.13.20 195.98.162.155 73 70166
|
||||||
|
194.87.13.20 195.98.162.9 323 163018
|
||||||
|
194.87.13.20 195.98.161.32 10 9756
|
||||||
|
194.87.13.20 195.98.161.25 4 1208
|
||||||
|
194.87.13.20 195.90.180.25 3 568
|
||||||
|
194.87.13.20 195.90.162.2 4 738
|
||||||
|
194.87.13.20 195.54.8.139 42 53309
|
||||||
|
194.87.13.20 195.54.5.129 27 13705
|
||||||
|
194.87.13.20 195.46.164.25 11 12641
|
||||||
|
194.87.13.20 195.46.164.16 62 74088
|
||||||
|
194.87.13.20 195.46.163.158 35 37649
|
||||||
|
194.87.13.20 195.46.163.89 52 57716
|
||||||
|
194.87.13.20 195.46.163.15 11 12641
|
||||||
|
193.125.132.129 193.124.215.71 26 4734
|
||||||
|
193.125.132.129 193.124.222.161 5 220
|
||||||
|
194.87.13.20 195.46.162.196 13 12813
|
||||||
|
194.87.13.20 195.46.162.173 30 36193
|
||||||
|
194.87.13.20 195.46.161.242 69 82486
|
||||||
|
194.87.13.20 195.46.161.210 15 13392
|
||||||
|
194.87.13.20 195.46.161.209 43 39183
|
||||||
|
193.125.132.129 194.190.211.25 2 80
|
||||||
|
194.87.13.20 195.46.161.111 85 93111
|
||||||
|
194.87.13.20 195.46.161.100 41 8909
|
||||||
|
194.87.13.20 195.16.102.4 5 3716
|
||||||
|
194.87.13.20 195.16.101.109 17 20273
|
||||||
|
194.87.13.20 195.16.101.101 93 112303
|
||||||
|
194.87.13.20 195.16.98.99 152 171268
|
||||||
|
194.87.13.20 195.9.103.3 11 12641
|
||||||
|
194.87.13.20 194.220.53.195 303 100520
|
||||||
|
194.87.13.20 194.190.56.83 8 1096
|
||||||
|
194.87.13.20 194.85.149.18 43 48875
|
||||||
|
194.87.13.20 194.85.137.152 30 34921
|
||||||
|
194.87.13.20 194.58.169.23 5 590
|
||||||
|
194.87.13.20 194.58.92.67 10 1044
|
||||||
|
194.87.13.20 194.58.72.102 34 31635
|
||||||
|
194.87.13.20 194.58.47.81 4 172
|
||||||
|
194.87.13.20 193.124.241.239 53 51597
|
||||||
|
193.125.142.40 195.54.3.15 7 500
|
||||||
|
193.125.142.40 195.90.183.40 1 40
|
||||||
|
193.125.143.130 195.90.128.103 13 11141
|
||||||
|
193.125.143.135 195.46.160.46 45 2957
|
||||||
|
204.62.129.195 195.19.1.132 10 4438
|
||||||
|
193.125.148.150 193.124.22.65 12 912
|
||||||
|
194.87.13.20 193.124.121.65 4 2216
|
||||||
|
194.87.13.20 193.124.114.33 8 1084
|
||||||
|
194.87.13.16 195.98.162.134 259 254892
|
||||||
|
194.87.13.16 195.46.165.162 292 145058
|
||||||
|
194.87.13.16 195.46.162.200 51 42010
|
||||||
|
194.87.13.16 195.46.160.69 97 45411
|
||||||
|
194.87.13.16 193.124.97.35 74 81434
|
||||||
|
194.87.13.15 212.20.1.95 11 10485
|
||||||
|
194.87.13.15 195.210.136.135 16 15786
|
||||||
|
194.87.13.15 195.210.131.39 6 3168
|
||||||
|
193.125.152.1 147.45.130.1 2 326
|
||||||
|
194.87.13.15 195.98.162.153 136 143332
|
||||||
|
194.87.13.15 195.98.162.9 308 168069
|
||||||
|
194.87.13.15 195.46.165.185 1183 633028
|
||||||
|
194.87.13.15 195.46.165.166 2 104
|
||||||
|
194.87.13.15 195.46.164.44 70 53112
|
||||||
|
194.87.13.15 195.46.163.156 159 113967
|
||||||
|
194.87.13.15 195.46.162.241 64 20483
|
||||||
|
194.87.13.15 195.46.162.30 120 95284
|
||||||
|
194.87.13.15 195.16.101.67 115 82325
|
||||||
|
194.87.13.15 195.9.90.85 7 600
|
||||||
|
194.87.13.15 194.135.176.88 92 7543
|
||||||
|
193.125.152.1 193.124.5.54 382 18328
|
||||||
|
193.125.152.1 193.124.22.22 271 246786
|
||||||
|
193.125.152.1 193.124.22.65 58 3504
|
||||||
|
193.125.152.1 193.124.22.68 12 1443
|
||||||
|
193.125.152.1 193.124.22.69 535 50134
|
||||||
|
193.125.152.1 193.124.22.70 10 1187
|
||||||
|
193.125.152.1 193.124.22.71 430 57506
|
||||||
|
193.125.152.1 193.124.22.72 57 7236
|
||||||
|
193.125.152.1 193.124.22.73 12 1443
|
||||||
|
193.125.152.1 193.124.22.74 9 1059
|
||||||
|
193.125.152.1 193.124.22.75 237 33658
|
||||||
|
193.125.152.1 193.124.22.77 266 37279
|
||||||
|
193.125.152.1 193.124.22.81 2265 522913
|
||||||
|
193.125.152.1 193.124.22.83 739 88013
|
||||||
|
193.125.152.1 193.124.36.45 1639 813217
|
||||||
|
193.125.152.1 193.124.57.65 219 74665
|
||||||
|
194.87.13.15 194.135.2.7 75 27476
|
||||||
|
194.87.13.15 193.124.252.73 254 110171
|
||||||
|
193.125.152.1 193.124.182.41 4 160
|
||||||
|
193.125.152.1 193.124.241.3 15 2284
|
||||||
|
193.125.152.1 193.124.241.14 1 244
|
||||||
|
193.125.152.1 193.124.241.18 3 636
|
||||||
|
193.125.152.1 193.124.241.29 19 3767
|
||||||
|
193.125.152.1 193.124.241.40 13 3140
|
||||||
|
193.125.152.1 193.124.241.53 32 7802
|
||||||
|
193.125.152.1 193.124.241.58 2 420
|
||||||
|
193.125.152.1 193.124.241.75 1 244
|
||||||
|
193.125.152.1 193.124.241.84 4 670
|
||||||
|
193.125.152.1 193.124.241.123 16 3574
|
||||||
|
193.125.152.1 193.124.241.154 2 524
|
||||||
|
193.125.152.1 193.124.241.158 44 10519
|
||||||
|
193.125.152.1 193.124.241.229 1 200
|
||||||
|
193.125.152.1 193.124.241.239 22 4490
|
||||||
|
193.125.152.1 193.124.241.249 6 1748
|
||||||
|
193.125.152.1 193.125.65.235 321 13793
|
||||||
|
193.125.152.1 193.125.80.35 2 476
|
||||||
|
194.87.13.15 193.124.241.39 512 271010
|
||||||
|
194.87.13.15 193.124.32.49 1119 1170153
|
||||||
|
194.87.13.14 195.210.136.135 188 193578
|
||||||
|
193.125.152.1 193.232.0.205 24 1555
|
||||||
|
193.125.152.1 193.232.21.26 17 1138
|
||||||
|
193.125.152.1 193.232.21.31 24 2206
|
||||||
|
193.125.152.1 193.232.69.159 8 1176
|
||||||
|
193.125.152.1 193.232.88.17 19 1387
|
||||||
|
193.125.152.1 193.232.119.131 783 31804
|
||||||
|
193.125.152.1 193.232.202.12 2 818
|
||||||
|
193.125.152.1 193.233.86.14 11 660
|
||||||
|
193.125.152.1 193.233.86.33 11 660
|
||||||
|
193.125.152.1 193.233.208.3 3 738
|
||||||
|
194.87.13.12 212.248.36.8 5 1763
|
||||||
|
194.87.13.12 212.20.8.250 49 37420
|
||||||
|
194.87.13.12 195.210.182.31 50 3544
|
||||||
|
194.87.13.12 195.210.179.4 37 33062
|
||||||
|
193.125.152.1 194.58.169.17 357 155601
|
||||||
|
193.125.152.1 194.58.201.193 6 774
|
||||||
|
193.125.152.1 194.58.230.92 8 1576
|
||||||
|
193.125.152.1 194.58.230.110 1 60
|
||||||
|
193.125.152.1 194.67.2.97 10 2760
|
||||||
|
193.125.152.1 194.67.90.1 8 448
|
||||||
|
194.87.13.12 195.210.154.48 37 13937
|
||||||
|
194.87.13.12 195.210.130.50 20 2117
|
||||||
|
193.125.152.1 194.84.23.125 16 1168
|
||||||
|
193.125.152.1 194.84.41.68 298 127287
|
||||||
|
193.125.152.1 194.84.42.17 16 1325
|
||||||
|
193.125.152.1 194.84.96.2 44 10261
|
||||||
|
193.125.152.1 194.84.204.222 1 112
|
||||||
|
193.125.152.1 194.84.242.126 10 2178
|
||||||
|
193.125.152.1 194.85.80.238 18 1178
|
||||||
|
193.125.152.1 194.85.128.10 25 1375
|
||||||
|
193.125.152.1 194.85.137.89 8 440
|
||||||
|
194.87.13.12 195.208.94.133 33 20968
|
||||||
|
193.125.152.1 194.85.224.33 28 1708
|
||||||
|
193.125.152.1 194.85.224.34 26 1586
|
||||||
|
193.125.152.1 194.87.0.20 12 873
|
||||||
|
193.125.152.1 194.87.5.3 8 448
|
||||||
|
193.125.152.1 194.87.5.21 2 518
|
||||||
|
193.125.152.1 194.87.13.2 4 224
|
||||||
|
193.125.152.1 194.87.44.1 1 146
|
||||||
|
193.125.152.1 194.87.210.41 2 402
|
||||||
|
194.87.13.12 195.182.129.11 23 15865
|
||||||
|
194.87.13.12 195.170.195.70 63 44135
|
||||||
|
194.87.13.12 195.144.192.198 31 6314
|
||||||
|
193.125.152.1 194.117.64.34 20 1271
|
||||||
|
193.125.152.1 194.135.34.19 13 2470
|
||||||
|
193.125.152.1 194.135.34.85 12 2254
|
||||||
|
193.125.152.1 194.135.34.136 6 866
|
||||||
|
193.125.152.1 194.135.34.150 2 488
|
||||||
|
193.125.152.1 194.135.34.159 1 467
|
||||||
|
193.125.152.1 194.135.34.212 11 2560
|
||||||
|
193.125.152.1 194.135.34.229 2 337
|
||||||
|
193.125.152.1 194.135.34.233 4 680
|
||||||
|
193.125.152.1 194.135.102.10 2 414
|
||||||
|
193.125.152.1 194.135.178.74 7 1162
|
||||||
|
193.125.152.1 194.154.93.80 2 284
|
||||||
|
194.87.13.12 195.128.140.3 14 872
|
||||||
|
193.125.152.1 194.190.218.2 2 518
|
||||||
|
194.87.13.12 195.128.130.2 4 352
|
||||||
|
194.87.13.12 195.98.162.155 75 60095
|
||||||
|
194.87.13.12 195.98.162.78 98 64468
|
||||||
|
193.125.152.1 194.220.36.1 37 2850
|
||||||
|
193.125.152.1 194.220.146.79 2 522
|
||||||
|
194.87.13.12 195.98.162.9 62 13543
|
||||||
|
194.87.13.12 195.98.161.59 7 476
|
||||||
|
194.87.13.12 195.98.161.32 12 865
|
||||||
|
204.62.128.51 195.19.1.132 43 38029
|
||||||
|
204.62.128.48 193.124.97.153 9 3356
|
||||||
|
204.59.144.222 194.85.149.1 2 266
|
||||||
|
193.125.152.1 195.5.128.130 2 512
|
||||||
|
194.87.13.12 195.98.161.25 8 3438
|
||||||
|
193.125.152.1 195.16.104.35 5 280
|
||||||
|
193.125.152.1 195.34.19.108 2 312
|
||||||
|
193.125.152.1 195.34.32.11 2 476
|
||||||
|
193.125.152.1 195.34.41.33 9 504
|
||||||
|
194.87.13.12 195.90.136.148 32 3564
|
||||||
|
194.87.13.12 195.90.136.143 10 890
|
||||||
|
193.125.152.1 195.46.160.2 8 448
|
||||||
|
193.125.152.1 195.46.160.34 2 630
|
||||||
|
193.125.152.1 195.54.193.9 18 1405
|
||||||
|
193.125.152.1 195.91.133.77 4 1212
|
||||||
|
193.125.152.1 195.98.55.1 18 1405
|
||||||
|
193.125.152.1 195.133.94.129 23 1485
|
||||||
|
193.125.152.1 195.138.67.91 8 544
|
||||||
|
193.125.152.1 195.138.80.33 19 1245
|
||||||
|
193.125.152.1 195.138.80.34 20 1308
|
||||||
|
193.125.152.1 195.146.64.131 4 472
|
||||||
|
193.125.152.1 195.161.8.6 19 1445
|
||||||
|
193.125.152.1 195.161.8.159 42 3569
|
||||||
|
194.87.13.12 195.54.8.139 74 6178
|
||||||
|
193.125.152.1 195.208.141.38 2 512
|
||||||
|
193.125.152.1 195.209.37.18 2 670
|
||||||
|
193.125.152.1 195.209.39.133 8 1698
|
||||||
|
194.87.13.12 195.46.165.250 2 80
|
||||||
|
193.125.152.1 195.218.133.114 24 1905
|
||||||
|
194.87.13.12 195.46.165.196 9 3478
|
||||||
|
193.125.152.1 195.230.64.66 101 4508
|
||||||
|
193.125.152.1 195.239.88.50 37 1480
|
||||||
|
193.125.152.1 195.239.193.64 2 476
|
||||||
|
193.125.152.1 195.239.210.2 2 500
|
||||||
|
194.87.13.12 195.46.164.25 69 4776
|
||||||
|
194.87.13.12 195.46.164.17 28 16790
|
||||||
|
194.87.13.12 195.46.163.158 30 6337
|
||||||
|
194.87.13.12 195.46.163.89 56 28328
|
||||||
|
194.87.13.12 195.46.163.15 8 336
|
||||||
|
194.87.13.12 195.46.162.213 4 160
|
||||||
|
194.87.13.12 195.46.162.206 41 25676
|
||||||
|
194.87.13.12 195.46.162.196 54 38487
|
||||||
|
194.87.13.12 195.46.162.173 63 40346
|
||||||
|
194.87.13.12 195.46.162.55 7 657
|
||||||
|
194.87.13.12 195.46.162.31 5 200
|
||||||
|
194.87.13.12 195.46.161.242 67 20130
|
||||||
|
194.87.13.12 195.46.161.219 5 1831
|
||||||
|
194.87.13.12 195.46.161.210 12 13389
|
||||||
|
194.87.13.12 195.46.161.209 64 26136
|
||||||
|
194.87.13.12 195.46.161.111 47 3947
|
||||||
|
194.87.13.12 195.16.101.109 31 2924
|
||||||
|
194.87.13.12 195.16.101.101 42 3051
|
||||||
|
194.87.13.12 195.16.98.99 13 903
|
||||||
|
194.87.13.12 195.9.103.3 74 5122
|
||||||
|
194.87.13.12 194.220.215.111 75 5304
|
||||||
|
194.87.13.12 194.220.215.110 22 2367
|
||||||
|
194.87.13.12 194.220.215.66 6 539
|
||||||
|
194.87.13.12 194.190.82.40 14 1558
|
||||||
|
194.87.13.12 193.125.19.101 23 2074
|
||||||
|
194.87.13.12 193.124.241.239 10 4274
|
||||||
|
194.87.13.12 193.124.114.33 42 13726
|
||||||
|
193.125.152.1 62.76.114.44 9 2780
|
||||||
|
194.87.13.8 212.20.8.250 110 87859
|
||||||
|
194.87.13.8 195.222.130.242 4 527
|
||||||
|
194.87.13.8 195.210.182.31 9 1222
|
||||||
|
194.87.13.8 195.210.179.4 14 15689
|
||||||
|
194.87.13.8 195.210.154.48 13 1602
|
||||||
|
194.87.13.8 195.210.136.135 163 171207
|
||||||
|
194.87.13.8 195.210.130.50 8 6213
|
||||||
|
194.87.13.8 195.210.128.65 6 408
|
||||||
|
194.87.13.8 195.208.94.133 63 43061
|
||||||
|
194.87.13.8 195.208.76.33 5 355
|
||||||
|
194.87.13.8 195.208.67.19 400 446069
|
||||||
|
194.87.13.8 195.208.64.146 50 39549
|
||||||
|
194.87.13.8 195.208.64.144 12 12685
|
||||||
|
194.87.13.8 195.182.129.11 16 18647
|
||||||
|
194.87.13.8 195.170.195.70 14 2119
|
||||||
|
194.87.13.8 195.146.70.100 49 27151
|
||||||
|
194.87.13.8 195.144.198.159 12 1336
|
||||||
|
194.87.13.8 195.144.192.198 16 2213
|
||||||
|
194.87.13.8 195.128.140.71 15 6105
|
||||||
|
194.87.13.8 195.128.140.3 8 821
|
||||||
|
194.87.13.8 195.98.162.170 5 699
|
||||||
|
194.87.13.8 195.98.162.155 43 43382
|
||||||
|
194.87.13.8 195.98.162.153 12 8634
|
||||||
|
194.87.13.8 195.98.162.78 57 25228
|
||||||
|
194.87.13.8 195.98.162.9 94 33009
|
||||||
|
194.87.13.8 195.98.161.57 4 6000
|
||||||
|
194.87.13.8 195.98.161.41 52 57725
|
||||||
|
194.87.13.8 195.98.161.32 6 433
|
||||||
|
194.87.13.8 195.96.174.178 17 20989
|
||||||
|
194.87.13.8 195.96.163.66 13 8510
|
||||||
|
194.87.13.8 195.90.188.105 169 68987
|
||||||
|
194.87.13.8 195.90.188.98 13 13679
|
||||||
|
194.87.13.8 195.90.185.38 100 23568
|
||||||
|
194.87.13.8 195.90.162.2 26 9575
|
||||||
|
194.87.13.8 195.90.136.148 25 3160
|
||||||
|
194.87.13.8 195.90.136.143 4 2024
|
||||||
|
194.87.13.8 195.90.132.57 4 1398
|
||||||
|
194.87.13.8 195.54.8.139 33 10681
|
||||||
|
194.87.13.8 195.54.5.129 4 735
|
||||||
|
194.87.13.8 195.46.165.250 5 697
|
||||||
|
194.87.13.8 195.46.165.215 23 10108
|
||||||
|
194.87.13.8 195.46.164.25 25 2325
|
||||||
|
194.87.13.8 195.46.164.17 16 11423
|
||||||
|
194.87.13.8 195.46.164.16 9 6253
|
||||||
|
194.87.13.8 195.46.163.171 50 24920
|
||||||
|
194.87.13.8 195.46.163.158 19 6681
|
||||||
|
194.87.13.8 195.46.163.156 18 19033
|
||||||
|
194.87.13.8 195.46.163.123 11 10683
|
||||||
|
194.87.13.8 195.46.163.89 69 36648
|
||||||
|
194.87.13.8 195.46.163.15 4 353
|
||||||
|
194.87.13.8 195.46.163.7 173 112297
|
||||||
|
194.87.13.8 195.46.162.206 12 2050
|
||||||
|
194.87.13.8 195.46.162.196 30 35369
|
||||||
|
194.87.13.8 195.46.162.184 80 104089
|
||||||
|
194.87.13.8 195.46.162.173 18 16346
|
||||||
|
194.87.13.8 195.46.162.91 306 246711
|
||||||
|
194.87.13.8 195.46.162.55 5 393
|
||||||
|
194.87.13.8 195.46.162.31 9 557
|
||||||
|
194.87.13.8 195.46.162.13 10 1014
|
||||||
|
194.87.13.8 195.46.161.242 44 35502
|
||||||
|
194.87.13.8 195.46.161.210 15 18274
|
||||||
|
194.87.13.8 195.46.161.209 24 15531
|
||||||
|
194.87.13.8 195.46.161.186 31 27219
|
||||||
|
194.87.13.8 195.46.161.170 9 1482
|
||||||
|
194.87.13.8 195.46.161.133 21 24725
|
||||||
|
194.87.13.8 195.46.161.123 11 10683
|
||||||
|
194.87.13.8 195.46.161.111 26 2791
|
||||||
|
194.87.13.8 195.46.161.83 25 10320
|
||||||
|
194.87.13.8 195.46.161.71 124 123406
|
||||||
|
194.87.13.8 195.46.160.69 11 10785
|
||||||
|
194.87.13.8 195.16.101.109 5 393
|
||||||
|
193.125.152.3 158.250.39.28 2 126
|
||||||
|
193.125.152.3 158.250.100.24 2 734
|
||||||
|
193.125.152.3 159.93.17.7 4 234
|
||||||
|
194.87.13.8 195.16.101.101 57 53033
|
||||||
|
194.87.13.8 195.16.98.99 100 68835
|
||||||
|
194.87.13.8 195.16.98.37 24 4428
|
||||||
|
194.87.13.8 195.12.35.2 18 17726
|
||||||
|
194.87.13.8 195.9.103.3 76 32081
|
||||||
|
194.87.13.8 195.9.96.7 22 14498
|
||||||
|
194.87.13.8 194.220.215.111 16 2352
|
||||||
|
194.87.13.8 194.220.215.110 13 1554
|
||||||
|
194.87.13.8 194.220.215.66 5 759
|
||||||
|
194.87.13.8 194.220.53.195 7 797
|
||||||
|
194.87.13.8 194.135.178.214 70 27886
|
||||||
|
194.87.13.8 194.135.111.18 260 289019
|
||||||
|
194.87.13.8 194.85.149.18 6 475
|
||||||
|
194.87.13.8 194.58.72.102 5 703
|
||||||
|
194.87.13.8 193.124.241.239 13 6926
|
||||||
|
194.87.13.8 193.124.241.39 31 18403
|
||||||
|
194.87.13.8 193.124.121.118 17 1675
|
||||||
|
194.87.13.8 193.124.114.33 43 19148
|
||||||
|
194.87.13.6 195.98.162.153 2 120
|
||||||
|
194.87.13.2 212.20.8.250 16 3749
|
||||||
|
194.87.13.2 212.20.8.246 5 1259
|
||||||
|
194.87.13.2 212.20.1.95 33 7367
|
||||||
|
194.87.13.2 195.238.68.234 9 2454
|
||||||
|
194.87.13.2 195.222.138.108 7 1203
|
||||||
|
194.87.13.2 195.222.130.242 21 5860
|
||||||
|
194.87.13.2 195.210.190.19 19 4260
|
||||||
|
194.87.13.2 195.210.189.1 5 1119
|
||||||
|
194.87.13.2 195.210.182.31 35 26895
|
||||||
|
194.87.13.2 195.210.176.170 4 1079
|
||||||
|
194.87.13.2 195.210.174.6 5 1119
|
||||||
|
194.87.13.2 195.210.164.25 5 1119
|
||||||
|
194.87.13.2 195.210.154.164 9 2484
|
||||||
|
194.87.13.2 195.210.154.152 8 1376
|
||||||
|
193.125.152.3 192.188.189.3 2 136
|
||||||
|
194.87.13.2 195.210.154.48 43 28721
|
||||||
|
194.87.13.2 195.210.150.2 31 6855
|
||||||
|
194.87.13.2 195.210.148.242 17 2910
|
||||||
|
194.87.13.2 195.210.143.145 7 2110
|
||||||
|
194.87.13.2 195.210.136.145 20 3862
|
||||||
|
194.87.13.2 195.210.136.135 9 1423
|
||||||
|
194.87.13.2 195.210.136.131 7 1353
|
||||||
|
194.87.13.2 195.210.130.50 16 14690
|
||||||
|
194.87.13.2 195.208.94.133 33 9913
|
||||||
|
194.87.13.2 195.208.93.154 9 1411
|
||||||
|
194.87.13.2 195.208.72.139 4 1079
|
||||||
|
194.87.13.2 195.208.72.47 8 2154
|
||||||
|
194.87.13.2 195.208.67.19 4 1079
|
||||||
|
194.87.13.2 195.208.67.10 8 1376
|
||||||
|
194.87.13.2 195.208.64.152 4 1079
|
||||||
|
194.87.13.2 195.208.64.144 6 2066
|
||||||
|
193.125.152.3 193.124.5.37 11 1336
|
||||||
|
193.125.152.3 193.124.5.50 2 266
|
||||||
|
193.125.152.3 193.124.5.54 4 692
|
||||||
|
193.125.152.3 193.124.22.22 11 2138
|
||||||
|
193.125.152.3 193.124.22.65 141 15806
|
||||||
|
193.125.152.3 193.124.32.129 5 1116
|
||||||
|
193.125.152.3 193.124.57.100 3 197
|
||||||
|
193.125.152.3 193.124.76.86 1 278
|
||||||
|
194.87.13.2 195.208.64.129 6 1167
|
||||||
|
193.125.152.3 193.124.110.130 2 766
|
||||||
|
193.125.152.3 193.124.134.19 4 548
|
||||||
|
194.87.13.2 195.182.129.8 9 3525
|
||||||
|
193.125.152.3 193.124.148.73 9 1408
|
||||||
|
193.125.152.3 193.124.171.67 2 354
|
||||||
|
193.125.152.3 193.124.182.40 2 144
|
||||||
|
193.125.152.3 193.124.241.39 2 356
|
||||||
|
193.125.152.3 193.124.241.83 4 866
|
||||||
|
194.87.13.2 195.182.128.2 39 9020
|
||||||
|
193.125.152.3 193.124.250.22 79 12968
|
||||||
|
193.125.152.3 193.125.80.35 2 300
|
||||||
|
194.87.13.2 195.170.195.70 55 42078
|
||||||
|
194.87.13.2 195.146.71.226 5 1119
|
||||||
|
194.87.13.2 195.146.71.178 53 11410
|
||||||
|
194.87.13.2 195.146.70.100 6 2070
|
||||||
|
194.87.13.2 195.146.70.97 7 1199
|
||||||
|
194.87.13.2 195.144.198.159 44 14597
|
||||||
|
194.87.13.2 195.144.192.198 17 4040
|
||||||
|
194.87.13.2 195.128.144.142 7 2110
|
||||||
|
194.87.13.2 195.128.144.133 6 2342
|
||||||
|
194.87.13.2 195.128.140.71 19 16072
|
||||||
|
194.87.13.2 195.128.140.3 22 5159
|
||||||
|
194.87.13.2 195.128.139.110 13 2642
|
||||||
|
194.87.13.2 195.128.139.94 18 6772
|
||||||
|
193.125.152.3 193.193.193.100 2 132
|
||||||
|
193.125.152.3 193.193.193.107 4 1148
|
||||||
|
193.125.152.3 193.193.226.226 3 489
|
||||||
|
194.87.13.2 195.128.138.136 6 1309
|
||||||
|
194.87.13.2 195.128.136.186 20 4622
|
||||||
|
193.125.152.3 193.232.8.20 5 323
|
||||||
|
193.125.152.3 193.232.68.1 2 120
|
||||||
|
193.125.152.3 193.232.88.17 44 4923
|
||||||
|
193.125.152.3 193.232.88.125 2 388
|
||||||
|
193.125.152.3 193.232.112.1 2 134
|
||||||
|
193.125.152.3 193.232.127.78 20 4237
|
||||||
|
193.125.152.3 193.232.212.12 9 1177
|
||||||
|
193.125.152.3 193.232.232.66 4 1210
|
||||||
|
193.125.152.3 193.233.48.9 7 447
|
||||||
|
193.125.152.3 193.233.48.65 2 130
|
||||||
|
193.125.152.3 193.233.56.200 2 294
|
||||||
|
193.125.152.3 193.233.78.1 2 276
|
||||||
|
193.125.152.3 193.233.86.14 4 240
|
||||||
|
193.125.152.3 193.233.86.33 4 240
|
||||||
|
193.125.152.3 193.233.192.19 2 118
|
||||||
|
193.125.152.3 193.233.208.3 4 238
|
||||||
|
193.125.152.3 193.233.224.1 4 800
|
||||||
|
194.87.13.2 195.128.136.71 6 1159
|
||||||
|
194.87.13.2 195.128.134.99 5 1264
|
||||||
|
194.87.13.2 195.128.132.70 23 6787
|
||||||
|
194.87.13.2 195.128.129.155 4 1079
|
||||||
|
194.87.13.2 195.128.128.98 30 17304
|
||||||
|
193.125.152.3 194.44.157.250 2 134
|
||||||
|
194.87.13.2 195.128.128.70 5 2372
|
||||||
|
194.87.13.2 195.128.128.66 8 2422
|
||||||
|
193.125.152.3 194.58.101.95 12 2368
|
||||||
|
193.125.152.3 194.58.124.24 2 320
|
||||||
|
194.87.13.2 195.128.128.3 5 1187
|
||||||
|
193.125.152.3 194.58.230.249 7 1050
|
||||||
|
194.87.13.2 195.112.226.35 23 956
|
||||||
|
193.125.152.3 194.67.1.154 9 1436
|
||||||
|
193.125.152.3 194.67.2.97 11 1861
|
||||||
|
193.125.152.3 194.67.2.98 12 973
|
||||||
|
193.125.152.3 194.67.66.176 2 122
|
||||||
|
193.125.152.3 194.67.82.228 2 552
|
||||||
|
193.125.152.3 194.67.110.2 4 688
|
||||||
|
193.125.152.3 194.67.114.81 3 198
|
||||||
|
193.125.152.3 194.67.114.193 5 330
|
||||||
|
193.125.152.3 194.67.115.35 5 330
|
||||||
|
193.125.152.3 194.67.115.38 2 412
|
||||||
|
193.125.152.3 194.67.128.130 2 330
|
||||||
|
194.87.13.2 195.98.162.189 11 2282
|
||||||
|
194.87.13.2 195.98.162.182 10 3433
|
||||||
|
194.87.13.2 195.98.162.170 56 55418
|
||||||
|
194.87.13.2 195.98.162.165 12 2318
|
||||||
|
193.125.152.3 194.84.2.73 2 298
|
||||||
|
193.125.152.3 194.84.17.34 17 2183
|
||||||
|
193.125.152.3 194.84.21.18 6 1320
|
||||||
|
193.125.152.3 194.84.23.125 21 1523
|
||||||
|
193.125.152.3 194.84.31.233 11 5316
|
||||||
|
193.125.152.3 194.84.32.67 2 138
|
||||||
|
193.125.152.3 194.84.39.28 7 981
|
||||||
|
193.125.152.3 194.84.48.11 2 130
|
||||||
|
193.125.152.3 194.84.54.130 2 358
|
||||||
|
193.125.152.3 194.84.86.6 1 58
|
||||||
|
193.125.152.3 194.84.96.57 6 387
|
||||||
|
193.125.152.3 194.84.122.1 20 1460
|
||||||
|
193.125.152.3 194.84.132.2 8 2208
|
||||||
|
193.125.152.3 194.84.167.1 2 146
|
||||||
|
193.125.152.3 194.84.168.49 4 670
|
||||||
|
193.125.152.3 194.84.204.131 2 146
|
||||||
|
193.125.152.3 194.84.204.222 2 476
|
||||||
|
193.125.152.3 194.84.206.3 5 305
|
||||||
|
193.125.152.3 194.84.206.193 18 1098
|
||||||
|
193.125.152.3 194.84.223.2 2 148
|
||||||
|
193.125.152.3 194.84.243.71 2 300
|
||||||
|
194.87.13.2 195.98.162.164 9 1287
|
||||||
|
194.87.13.2 195.98.162.160 29 8361
|
||||||
|
194.87.13.2 195.98.162.155 8 2174
|
||||||
|
194.87.13.2 195.98.162.151 15 3499
|
||||||
|
194.87.13.2 195.98.162.147 6 1300
|
||||||
|
193.125.152.3 194.85.128.10 28 1552
|
||||||
|
193.125.152.3 194.85.137.89 76 4180
|
||||||
|
194.87.13.2 195.98.162.141 22 5639
|
||||||
|
194.87.13.2 195.98.162.135 35 10480
|
||||||
|
194.87.13.2 195.98.162.131 31 25682
|
||||||
|
194.87.13.2 195.98.162.118 5 1262
|
||||||
|
194.87.13.2 195.98.162.114 6 1159
|
||||||
|
193.125.152.3 194.85.200.204 6 816
|
||||||
|
193.125.152.3 194.85.224.33 68 4150
|
||||||
|
193.125.152.3 194.85.224.34 64 3904
|
||||||
|
193.125.152.3 194.87.0.8 4 294
|
||||||
|
193.125.152.3 194.87.0.22 50 8498
|
||||||
|
193.125.152.3 194.87.0.242 24 4272
|
||||||
|
193.125.152.3 194.87.37.2 2 308
|
||||||
|
193.125.152.3 194.87.43.111 2 114
|
||||||
|
193.125.152.3 194.87.110.35 2 114
|
||||||
|
193.125.152.3 194.87.157.34 2 318
|
||||||
|
193.125.152.3 194.87.161.7 2 430
|
||||||
|
193.125.152.3 194.87.162.120 2 308
|
||||||
|
193.125.152.3 194.87.186.1 4 692
|
||||||
|
193.125.152.3 194.87.210.41 2 112
|
||||||
|
193.125.152.3 194.87.224.99 5 875
|
||||||
|
193.125.152.3 194.87.233.66 2 238
|
||||||
|
193.125.152.3 194.87.239.39 2 358
|
||||||
|
194.87.13.2 195.98.162.111 5 1119
|
||||||
|
194.87.13.2 195.98.162.102 7 1341
|
||||||
|
194.87.13.2 195.98.162.97 5 2030
|
||||||
|
194.87.13.2 195.98.162.94 13 2362
|
||||||
|
194.87.13.2 195.98.162.78 134 104964
|
||||||
|
194.87.13.2 195.98.162.77 6 1163
|
||||||
|
194.87.13.2 195.98.162.73 15 5512
|
||||||
|
194.87.13.2 195.98.162.72 26 5763
|
||||||
|
194.87.13.2 195.98.162.66 4 1225
|
||||||
|
194.87.13.2 195.98.162.9 231 74902
|
||||||
|
194.87.13.2 195.98.161.71 13 3581
|
||||||
|
193.125.152.3 194.135.2.131 16 3134
|
||||||
|
193.125.152.3 194.135.34.42 3 733
|
||||||
|
193.125.152.3 194.135.34.85 11 2042
|
||||||
|
193.125.152.3 194.135.34.136 6 866
|
||||||
|
194.87.13.2 195.98.161.67 10 2513
|
||||||
|
193.125.152.3 194.135.102.10 8 1490
|
||||||
|
193.125.152.3 194.135.161.11 13 1287
|
||||||
|
193.125.152.3 194.154.82.67 2 304
|
||||||
|
193.125.152.3 194.154.82.122 2 102
|
||||||
|
194.87.13.2 195.98.161.59 20 4472
|
||||||
|
193.125.152.3 194.186.38.34 2 298
|
||||||
|
193.125.152.3 194.186.113.254 5 644
|
||||||
|
193.125.152.3 194.186.170.253 2 476
|
||||||
|
193.125.152.3 194.186.208.51 4 550
|
||||||
|
193.125.152.3 194.186.212.137 2 336
|
||||||
|
193.125.152.3 194.186.254.23 2 360
|
||||||
|
194.87.13.2 195.98.161.57 28 6345
|
||||||
|
193.125.152.3 194.190.105.2 2 232
|
||||||
|
193.125.152.3 194.190.163.127 6 702
|
||||||
|
193.125.152.3 194.190.195.66 4 268
|
||||||
|
193.125.152.3 194.190.199.1 2 430
|
||||||
|
193.125.152.3 194.190.215.113 10 1471
|
||||||
|
193.125.152.3 194.190.216.124 2 448
|
||||||
|
193.125.152.3 194.190.218.2 4 598
|
||||||
|
194.87.13.2 195.98.161.46 8 1387
|
||||||
|
194.87.13.2 195.98.161.40 11 3193
|
||||||
|
194.87.13.2 195.98.161.33 13 3387
|
||||||
|
194.87.13.2 195.98.160.174 5 1119
|
||||||
|
194.87.13.2 195.98.160.148 11 1907
|
||||||
|
194.87.13.2 195.98.160.146 8 428
|
||||||
|
194.87.13.2 195.96.163.66 37 22436
|
||||||
|
194.87.13.2 195.90.188.112 8 2150
|
||||||
|
194.87.13.2 195.90.188.111 5 1237
|
||||||
|
193.125.152.3 194.220.146.79 2 322
|
||||||
|
194.87.13.2 195.90.188.105 27 7280
|
||||||
|
193.125.152.3 194.226.167.195 14 1947
|
||||||
|
194.87.13.2 195.90.188.101 1 1089
|
||||||
|
194.87.13.2 195.90.186.228 7 1332
|
||||||
|
194.87.13.2 195.90.185.38 20 3294
|
||||||
|
194.87.13.2 195.90.183.122 12 3627
|
||||||
|
194.87.13.2 195.90.180.25 22 18568
|
||||||
|
204.58.155.18 144.206.2.1 3 173
|
||||||
|
204.57.67.249 194.58.72.120 4 160
|
||||||
|
204.57.67.150 195.146.67.100 5 200
|
||||||
|
204.57.67.150 194.58.72.120 4 160
|
||||||
|
204.57.67.146 195.146.67.100 5 200
|
||||||
|
204.57.67.146 194.58.72.120 4 160
|
||||||
|
194.87.13.2 195.90.180.12 4 1300
|
||||||
|
194.87.13.2 195.90.162.2 53 15773
|
||||||
|
193.125.152.3 195.5.128.130 4 814
|
||||||
|
193.125.152.3 195.5.141.6 11 1500
|
||||||
|
193.125.152.3 195.5.151.21 5 615
|
||||||
|
194.87.13.2 195.90.158.23 3 1035
|
||||||
|
194.87.13.2 195.90.152.133 3 124
|
||||||
|
193.125.152.3 195.7.179.36 4 744
|
||||||
|
194.87.13.2 195.90.146.80 4 1075
|
||||||
|
194.87.13.2 195.90.145.35 6 2070
|
||||||
|
193.125.152.3 195.9.90.65 66 14486
|
||||||
|
193.125.152.3 195.9.90.70 3 615
|
||||||
|
193.125.152.3 195.9.94.33 2 140
|
||||||
|
193.125.152.3 195.12.66.1 4 250
|
||||||
|
193.125.152.3 195.16.96.2 3 482
|
||||||
|
193.125.152.3 195.16.101.2 2 126
|
||||||
|
193.125.152.3 195.16.114.47 3 192
|
||||||
|
194.87.13.2 195.90.145.1 3 1180
|
||||||
|
193.125.152.3 195.19.160.1 6 1066
|
||||||
|
193.125.152.3 195.19.188.66 4 248
|
||||||
|
194.87.13.2 195.90.142.27 7 2280
|
||||||
|
194.87.13.2 195.90.137.230 4 1075
|
||||||
|
194.87.13.2 195.90.136.148 4 1276
|
||||||
|
194.87.13.2 195.90.136.143 4 1260
|
||||||
|
194.87.13.2 195.90.136.135 6 2066
|
||||||
|
193.125.152.3 195.26.160.48 3 434
|
||||||
|
193.125.152.3 195.34.0.1 4 618
|
||||||
|
193.125.152.3 195.34.17.13 4 843
|
||||||
|
193.125.152.3 195.34.32.11 2 352
|
||||||
|
193.125.152.3 195.34.41.33 3 495
|
||||||
|
193.125.152.3 195.46.160.4 7 1412
|
||||||
|
193.125.152.3 195.46.163.120 42 9840
|
||||||
|
193.125.152.3 195.54.2.1 9 1433
|
||||||
|
193.125.152.3 195.54.192.33 20 2704
|
||||||
|
193.125.152.3 195.54.193.30 2 230
|
||||||
|
194.87.13.2 195.90.136.82 10 2230
|
||||||
|
194.87.13.2 195.90.134.250 7 2387
|
||||||
|
193.125.152.3 195.90.128.103 2 455
|
||||||
|
193.125.152.3 195.90.128.107 3 197
|
||||||
|
193.125.152.3 195.90.136.1 2 286
|
||||||
|
193.125.152.3 195.90.158.139 6 318
|
||||||
|
193.125.152.3 195.90.184.66 15 2690
|
||||||
|
193.125.152.3 195.91.133.54 28 5845
|
||||||
|
193.125.152.3 195.96.65.2 23 5249
|
||||||
|
193.125.152.3 195.98.64.65 2 494
|
||||||
|
193.125.152.3 195.98.162.10 2 520
|
||||||
|
193.125.152.3 195.98.163.16 2 144
|
||||||
|
194.87.13.2 195.90.132.67 7 1199
|
||||||
|
194.87.13.2 195.90.132.57 9 2318
|
||||||
|
193.125.152.3 195.128.128.1 18 1801
|
||||||
|
193.125.152.3 195.133.0.8 6 420
|
||||||
|
193.125.152.3 195.133.103.1 2 274
|
||||||
|
194.87.13.2 195.90.132.10 7 2256
|
||||||
|
193.125.152.3 195.146.64.42 5 736
|
||||||
|
193.125.152.3 195.146.72.34 4 232
|
||||||
|
194.87.13.2 195.90.132.3 9 2190
|
||||||
|
194.87.13.2 195.90.128.103 27 7388
|
||||||
|
193.125.152.3 195.151.16.12 2 288
|
||||||
|
193.125.152.3 195.151.16.13 2 436
|
||||||
|
193.125.152.3 195.151.35.66 9 1339
|
||||||
|
193.125.152.3 195.151.108.130 2 280
|
||||||
|
193.125.152.3 195.151.163.75 3 552
|
||||||
|
193.125.152.3 195.161.0.135 6 543
|
||||||
|
193.125.152.3 195.161.20.33 3 552
|
||||||
|
193.125.152.3 195.161.21.2 3 186
|
||||||
|
193.125.152.3 195.161.21.130 5 291
|
||||||
|
193.125.152.3 195.178.199.130 2 104
|
||||||
|
193.125.152.3 195.208.49.11 2 282
|
||||||
|
193.125.152.3 195.208.72.3 3 363
|
||||||
|
193.125.152.3 195.208.93.132 3 416
|
||||||
|
194.87.13.2 195.72.224.74 16 3667
|
||||||
|
194.87.13.2 195.54.8.139 28 17598
|
||||||
|
193.125.152.3 195.208.248.36 2 512
|
||||||
|
193.125.152.3 195.208.252.2 2 346
|
||||||
|
193.125.152.3 195.208.252.180 2 118
|
||||||
|
193.125.152.3 195.209.0.6 4 236
|
||||||
|
193.125.152.3 195.209.63.161 2 446
|
||||||
|
193.125.152.3 195.210.128.6 2 264
|
||||||
|
194.87.13.2 195.54.6.67 5 1266
|
||||||
|
194.87.13.2 195.54.5.129 60 27325
|
||||||
|
193.125.152.3 195.218.218.37 4 264
|
||||||
|
193.125.152.3 195.222.130.67 3 186
|
||||||
|
193.125.152.3 195.239.46.189 2 706
|
||||||
|
193.125.152.3 195.239.193.64 2 374
|
||||||
|
193.125.152.3 195.239.210.2 1 51
|
||||||
|
194.87.13.2 195.54.2.8 6 1438
|
||||||
|
194.87.13.2 195.46.165.248 16 6178
|
||||||
|
194.87.13.2 195.46.165.239 10 4284
|
||||||
|
194.87.13.2 195.46.165.227 8 2254
|
||||||
|
194.87.13.2 195.46.165.226 11 6825
|
||||||
|
194.87.13.2 195.46.165.204 6 2070
|
||||||
|
194.87.13.2 195.46.165.200 70 42657
|
||||||
|
194.87.13.2 195.46.165.196 10 4963
|
||||||
|
194.87.13.2 195.46.165.194 7 2110
|
||||||
|
194.87.13.2 195.46.165.193 10 5874
|
||||||
|
194.87.13.2 195.46.165.191 7 2400
|
||||||
|
194.87.13.2 195.46.165.172 14 11492
|
||||||
|
194.87.13.2 195.46.165.162 19 11262
|
||||||
|
194.87.13.2 195.46.165.158 7 2382
|
||||||
|
194.87.13.2 195.46.165.151 8 2254
|
||||||
|
194.87.13.2 195.46.165.145 161 74887
|
||||||
|
194.87.13.2 195.46.165.135 26 11996
|
||||||
|
194.87.13.2 195.46.165.133 14 5629
|
||||||
|
194.87.13.2 195.46.164.27 11 2278
|
||||||
|
194.87.13.2 195.46.164.25 64 67188
|
||||||
|
194.87.13.2 195.46.164.17 35 26017
|
||||||
|
194.87.13.2 195.46.164.16 6 1300
|
||||||
|
194.87.13.2 195.46.164.8 14 5798
|
||||||
|
194.87.13.2 195.46.164.6 5 1254
|
||||||
|
194.87.13.2 195.46.164.2 4 1079
|
||||||
|
194.87.13.2 195.46.163.180 5 1187
|
||||||
|
194.87.13.2 195.46.163.178 25 2053
|
||||||
|
194.87.13.2 195.46.163.174 5 1119
|
||||||
|
194.87.13.2 195.46.163.160 8 1365
|
||||||
|
194.87.13.2 195.46.163.159 5 1119
|
||||||
|
194.87.13.2 195.46.163.158 28 17225
|
||||||
|
194.87.13.2 195.46.163.156 16 3397
|
||||||
|
194.87.13.2 195.46.163.147 6 1163
|
||||||
|
194.87.13.2 195.46.163.136 5 1119
|
||||||
|
194.87.13.2 195.46.163.133 10 2370
|
||||||
|
194.87.13.2 195.46.163.132 6 1284
|
||||||
|
194.87.13.2 195.46.163.123 15 3503
|
||||||
|
194.87.13.2 195.46.163.120 14 3613
|
||||||
|
194.87.13.2 195.46.163.105 6 1294
|
||||||
|
194.87.13.2 195.46.163.94 5 1119
|
||||||
|
194.87.13.2 195.46.163.89 132 107364
|
||||||
|
194.87.13.2 195.46.163.76 13 2646
|
||||||
|
194.87.13.2 195.46.163.65 20 4627
|
||||||
|
194.87.13.2 195.46.163.60 8 1239
|
||||||
|
194.87.13.2 195.46.163.47 7 2110
|
||||||
|
194.87.13.2 195.46.163.38 17 3593
|
||||||
|
194.87.13.2 195.46.163.31 9 2378
|
||||||
|
194.87.13.2 195.46.163.30 14 2506
|
||||||
|
194.87.13.2 195.46.163.13 18 3681
|
||||||
|
194.87.13.2 195.46.163.7 21 3885
|
||||||
|
194.87.13.2 195.46.162.243 19 4865
|
||||||
|
194.87.13.2 195.46.162.226 8 2440
|
||||||
|
194.87.13.2 195.46.162.221 21 2981
|
||||||
|
194.87.13.2 195.46.162.218 5 1265
|
||||||
|
194.87.13.2 195.46.162.213 5 1257
|
||||||
|
194.87.13.2 195.46.162.206 59 43287
|
||||||
|
194.87.13.2 195.46.162.203 5 1119
|
||||||
|
194.87.13.2 195.46.162.196 18 14883
|
||||||
|
194.87.13.2 195.46.162.193 5 1119
|
||||||
|
194.87.13.2 195.46.162.184 13 1455
|
||||||
|
194.87.13.2 195.46.162.180 5 1119
|
||||||
|
194.87.13.2 195.46.162.179 9 3109
|
||||||
|
194.87.13.2 195.46.162.177 4 1079
|
||||||
|
194.87.13.2 195.46.162.173 8 2499
|
||||||
|
194.87.13.2 195.46.162.172 6 1159
|
||||||
|
194.87.13.2 195.46.162.169 8 2420
|
||||||
|
194.87.13.2 195.46.162.165 4 1079
|
||||||
|
194.87.13.2 195.46.162.120 5 1119
|
||||||
|
194.87.13.2 195.46.162.119 5 1262
|
||||||
|
194.87.13.2 195.46.162.104 4 1079
|
||||||
|
194.87.13.2 195.46.162.100 6 1290
|
||||||
|
194.87.13.2 195.46.162.72 5 1119
|
||||||
|
194.87.13.2 195.46.162.70 10 2373
|
||||||
|
194.87.13.2 195.46.162.60 14 3601
|
||||||
|
194.87.13.2 195.46.162.55 27 28360
|
||||||
|
194.87.13.2 195.46.162.53 7 1203
|
||||||
|
194.87.13.2 195.46.162.47 21 3887
|
||||||
|
194.87.13.2 195.46.162.42 12 2624
|
||||||
|
194.87.13.2 195.46.162.40 11 2420
|
||||||
|
194.87.13.2 195.46.162.34 11 2411
|
||||||
|
194.87.13.2 195.46.162.30 7 1207
|
||||||
|
194.87.13.2 195.46.162.28 18 3603
|
||||||
|
194.87.13.2 195.46.162.13 42 51477
|
||||||
|
194.87.13.2 195.46.162.8 5 1119
|
||||||
|
194.87.13.2 195.46.162.6 9 2452
|
||||||
|
194.87.13.2 195.46.162.1 14 2562
|
||||||
|
194.87.13.2 195.46.161.252 5 1119
|
||||||
|
194.87.13.2 195.46.161.251 21 4943
|
||||||
|
194.87.13.2 195.46.161.236 5 1260
|
||||||
|
193.125.152.3 212.192.34.200 2 298
|
||||||
|
193.125.152.3 212.248.39.3 3 174
|
||||||
|
194.87.13.2 195.46.161.233 5 1262
|
||||||
|
194.87.13.2 195.46.161.224 11 1508
|
||||||
|
194.87.13.2 195.46.161.217 22 5891
|
||||||
|
194.87.13.2 195.46.161.209 11 2619
|
||||||
|
194.87.13.2 195.46.161.207 20 2351
|
||||||
|
193.125.152.3 62.76.0.1 12 888
|
||||||
|
193.125.152.3 62.76.114.44 4 861
|
||||||
|
194.87.13.2 195.46.161.205 5 1119
|
||||||
|
194.87.13.2 195.46.161.201 5 1262
|
||||||
|
194.87.13.2 195.46.161.199 13 4623
|
||||||
|
194.87.13.2 195.46.161.186 90 82991
|
||||||
|
193.125.152.4 193.124.1.131 20 1742
|
||||||
|
193.125.152.4 193.124.22.81 402 73761
|
||||||
|
193.125.152.4 193.124.36.34 37 8132
|
||||||
|
193.125.152.4 193.124.188.65 101 48405
|
||||||
|
193.125.152.4 193.125.44.76 6 240
|
||||||
|
193.125.152.4 193.125.80.35 37 3336
|
||||||
|
193.125.152.4 193.233.208.3 4 240
|
||||||
|
193.125.152.4 194.58.38.18 36 3384
|
||||||
|
194.87.13.2 195.46.161.184 5 1119
|
||||||
|
193.125.152.4 194.58.124.17 39 3399
|
||||||
|
193.125.152.4 194.58.212.34 25 3742
|
||||||
|
193.125.152.4 194.67.80.42 25 1795
|
||||||
|
193.125.152.4 194.84.44.35 18 1638
|
||||||
|
193.125.152.4 194.87.0.20 82 19845
|
||||||
|
193.125.152.4 194.87.160.195 17 1150
|
||||||
|
193.125.152.4 194.87.206.137 19 1690
|
||||||
|
193.125.152.4 194.87.211.1 103 8898
|
||||||
|
194.87.13.2 195.46.161.177 6 2360
|
||||||
|
194.87.13.2 195.46.161.172 5 1259
|
||||||
|
193.125.152.4 194.154.92.129 31 5655
|
||||||
|
193.125.152.4 194.186.221.251 19 1238
|
||||||
|
193.125.152.4 194.186.254.26 62 31955
|
||||||
|
193.125.152.4 194.190.194.33 16 1534
|
||||||
|
194.87.13.2 195.46.161.171 16 3685
|
||||||
|
204.57.67.27 194.58.72.120 4 160
|
||||||
|
193.125.152.4 195.9.16.2 23 1913
|
||||||
|
193.125.152.4 195.12.66.81 16 1534
|
||||||
|
194.87.13.2 195.46.161.170 32 7476
|
||||||
|
193.125.152.4 195.54.2.7 17 1586
|
||||||
|
193.125.152.4 195.58.1.145 35 7789
|
||||||
|
193.125.152.4 195.90.136.21 94 11466
|
||||||
|
193.125.152.4 195.222.130.67 17 1577
|
||||||
|
193.125.152.4 195.239.88.50 21 1220
|
||||||
|
194.87.13.2 195.46.161.164 7 2364
|
||||||
|
194.87.13.2 195.46.161.156 12 2478
|
||||||
|
194.87.13.2 195.46.161.155 6 1296
|
||||||
|
194.87.13.2 195.46.161.154 11 2282
|
||||||
|
194.87.13.2 195.46.161.153 5 1256
|
||||||
|
194.87.13.2 195.46.161.146 6 252
|
||||||
|
194.87.13.2 195.46.161.113 11 3596
|
||||||
|
194.87.13.2 195.46.161.111 16 3598
|
||||||
|
193.125.152.5 193.124.22.65 18 1368
|
||||||
|
194.87.13.2 195.46.161.109 4 1079
|
||||||
|
194.87.13.2 195.46.161.85 10 1383
|
||||||
|
194.87.13.2 195.46.161.84 21 4799
|
||||||
|
194.87.13.2 195.46.161.83 121 57225
|
||||||
|
194.87.13.2 195.46.161.75 3 124
|
||||||
|
193.125.152.6 193.124.22.22 2 88
|
||||||
|
193.125.152.6 193.124.22.65 15 930
|
||||||
|
193.125.152.6 193.232.119.131 2 80
|
||||||
|
194.87.13.2 195.46.160.69 147 34960
|
||||||
|
193.125.152.6 194.226.235.33 6 254
|
||||||
|
194.87.13.2 195.38.160.38 10 1591
|
||||||
|
194.87.13.2 195.16.108.139 10 9589
|
||||||
|
193.125.152.6 195.91.161.2 4 176
|
||||||
|
193.125.152.6 195.128.140.2 19 5145
|
||||||
|
193.125.152.6 195.161.24.66 23 1283
|
||||||
|
194.87.13.2 195.16.108.135 8 3272
|
||||||
|
194.87.13.2 195.16.102.4 8 2154
|
||||||
|
194.87.13.2 195.16.101.101 4 1280
|
||||||
|
194.87.13.2 195.16.101.67 72 52581
|
||||||
|
193.125.152.6 212.46.3.250 4 176
|
||||||
|
193.125.152.8 193.124.22.65 4 224
|
||||||
|
194.87.13.2 195.16.98.235 22 3020
|
||||||
|
193.125.152.8 193.124.224.35 14 2571
|
||||||
|
194.87.13.2 195.16.98.230 7 1330
|
||||||
|
194.87.13.2 195.16.98.209 10 3463
|
||||||
|
194.87.13.2 195.16.98.204 27 5394
|
||||||
|
194.87.13.2 195.16.98.194 13 3269
|
||||||
|
194.87.13.2 195.16.98.193 14 4507
|
||||||
|
194.87.13.2 195.16.98.99 7 1400
|
||||||
|
194.87.13.2 195.16.98.37 44 49756
|
||||||
|
194.87.13.2 195.16.98.13 14 3317
|
||||||
|
193.125.152.10 158.250.26.145 18 1368
|
||||||
|
194.87.13.2 195.16.96.9 11 2554
|
||||||
|
194.87.13.2 195.12.32.170 8 3451
|
||||||
|
193.125.152.10 193.124.22.65 18 1368
|
||||||
|
193.125.152.10 193.233.11.84 4 304
|
||||||
|
193.125.152.10 194.67.64.33 18 1368
|
||||||
|
193.125.152.10 194.67.65.17 18 1368
|
||||||
|
193.125.152.10 194.67.65.18 18 1368
|
||||||
|
193.125.152.10 194.67.65.130 18 1368
|
||||||
|
193.125.152.10 194.67.106.209 20 1520
|
||||||
|
193.125.152.10 194.84.127.22 12 912
|
||||||
|
194.87.13.2 195.12.32.165 27 4363
|
||||||
|
194.87.13.2 195.12.32.52 5 2138
|
||||||
|
194.87.13.2 195.12.32.7 4 1219
|
||||||
|
193.125.152.10 194.190.105.2 2 152
|
||||||
|
193.125.152.10 194.190.105.4 1 76
|
||||||
|
193.125.152.10 194.190.105.7 2 152
|
||||||
|
193.125.152.10 195.5.128.42 18 1368
|
||||||
|
193.125.152.10 195.5.138.6 18 1368
|
||||||
|
193.125.152.10 195.5.138.44 16 1216
|
||||||
|
193.125.152.10 195.26.160.48 15 1140
|
||||||
|
193.125.152.10 195.26.160.50 18 1368
|
||||||
|
193.125.152.10 195.54.192.1 2 152
|
||||||
|
193.125.152.10 195.54.192.43 2 152
|
||||||
|
193.125.152.10 195.133.94.129 4 336
|
||||||
|
193.125.152.10 195.151.111.45 13 988
|
||||||
|
194.87.13.2 195.9.176.153 18 5299
|
||||||
|
194.87.13.2 195.9.103.3 184 183787
|
||||||
|
194.87.13.2 195.9.96.7 96 66779
|
||||||
|
193.125.152.12 193.124.22.65 2 152
|
||||||
|
193.125.152.15 193.124.22.65 18 1368
|
||||||
|
193.125.152.16 193.124.22.65 15 1140
|
||||||
|
193.125.152.17 193.124.22.22 12 906
|
||||||
|
193.125.152.17 193.124.22.65 12 912
|
||||||
|
193.125.152.18 193.124.22.65 2 152
|
||||||
|
204.57.67.9 195.146.67.100 5 200
|
||||||
|
194.87.13.2 195.9.94.33 11 2544
|
||||||
|
193.125.152.19 193.124.22.65 13 988
|
||||||
|
194.87.13.2 195.9.90.85 139 61939
|
||||||
|
194.87.13.2 195.9.67.45 18 3485
|
||||||
|
193.125.152.23 193.124.22.65 4 246
|
||||||
|
194.87.13.2 195.9.47.230 7 2488
|
||||||
|
193.125.152.23 194.87.0.28 3783 538698
|
||||||
|
193.125.152.23 194.186.254.26 6986 644105
|
||||||
|
194.87.13.2 194.220.215.111 73 61702
|
||||||
|
193.125.152.24 192.124.174.67 5717 2168144
|
||||||
|
194.87.13.2 194.220.215.110 56 45039
|
||||||
|
193.125.152.24 193.124.97.131 504 27627
|
||||||
|
194.87.13.2 194.220.215.66 59 35775
|
||||||
|
194.87.13.2 194.220.169.1 32 14343
|
||||||
|
193.125.152.24 193.125.95.121 1040 572488
|
||||||
|
194.87.13.2 194.220.140.106 6 1159
|
||||||
|
194.87.13.2 194.190.105.4 40 8033
|
||||||
|
194.87.13.2 194.190.82.40 34 24976
|
||||||
|
193.125.152.24 194.58.72.102 2072 1038564
|
||||||
|
193.125.152.24 194.58.110.33 649 310072
|
||||||
|
194.87.13.2 194.190.56.83 11 1499
|
@ -1,8 +1,8 @@
|
|||||||
--
|
--
|
||||||
-- A quick test of the IP address code
|
-- A quick test of the IP address code
|
||||||
--
|
--
|
||||||
-- $Id: test.sql,v 1.1 1998/02/14 17:58:09 scrappy Exp $
|
-- $Id: test.sql,v 1.2 1998/06/16 05:35:12 momjian Exp $
|
||||||
--
|
-- This is original test (it was written before my changes in this class). alex.
|
||||||
|
|
||||||
-- temporary table:
|
-- temporary table:
|
||||||
create table addresses (address ipaddr);
|
create table addresses (address ipaddr);
|
||||||
|
11
contrib/ip_and_mac/test1.sql
Normal file
11
contrib/ip_and_mac/test1.sql
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
drop table stat_t;
|
||||||
|
create table stat_t(i1 ipaddr, i2 ipaddr, p int4, b int4);
|
||||||
|
create index stat_i1 on stat_t using btree (i1 ipaddr_ops);
|
||||||
|
create index stat_i2 on stat_t using btree (i2 ipaddr_ops);
|
||||||
|
copy stat_t from '/v/noc/src/ip_class/test.DATA' using delimiters ' ';
|
||||||
|
--
|
||||||
|
-- Please, check if your test data are not in /v/noc/src/ip_class/test.DATA file,
|
||||||
|
-- edit test1.sql file and repeatr it.
|
||||||
|
--
|
||||||
|
-- If everything is OK, you should run test2.sql now
|
||||||
|
--
|
26
contrib/ip_and_mac/test2.sql
Normal file
26
contrib/ip_and_mac/test2.sql
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
vacuum verbose analyze stat_t (i1,i2);
|
||||||
|
--
|
||||||
|
--
|
||||||
|
select i2,sum(b) as b
|
||||||
|
into tmp
|
||||||
|
from stat_t
|
||||||
|
where i1 >= '144.206.0.0' and i1 <= '144.206.255.255'
|
||||||
|
group by i2;
|
||||||
|
insert into tmp
|
||||||
|
select '0.0.0.0' as i2,sum(b) as k
|
||||||
|
from tmp
|
||||||
|
where b < 10 * 1024;
|
||||||
|
delete from tmp
|
||||||
|
where b < 10 * 1024 and i2 <> '0.0.0.0';
|
||||||
|
select i2,b / 1024 as k from tmp
|
||||||
|
order by k desc;
|
||||||
|
select ipaddr_print(i2,'%A/%P'),b from tmp where i2 = '0.0.0.0';
|
||||||
|
drop table tmp;
|
||||||
|
explain select i2,sum(b) as b
|
||||||
|
into tmp
|
||||||
|
from stat_t
|
||||||
|
where i1 >= '144.206.0.0' and i1 <= '144.206.255.255'
|
||||||
|
group by i2;
|
||||||
|
-- ********************************************************
|
||||||
|
-- * Now remove test table by 'drop table stat_t' command *
|
||||||
|
-- ********************************************************
|
Loading…
Reference in New Issue
Block a user