WHAT IS THIS?
-As a programming exercise for learning Python, I wrote a simple rwhois
-server (described in RFC 2167). It uses in-memory data structures,
-and it intuits the schema based on the data it sees. The server takes
-as input a schema file, which for now just describes which attributes
-should be indexed (and how), and data files which look much like the C
-rwhoisd's data files.
+In 2003, as a programming exercise for learning Python, I wrote a
+simple rwhois server (described in RFC 2167). It uses in-memory data
+structures, and it intuits the schema based on the data it sees. The
+server takes as input a schema file, which for now just describes
+which attributes should be indexed (and how), and data files which
+look much like the C rwhoisd's data files.
This version supports a sort of extended query syntax: IP or CIDR
queries ending in "**" will result in a "subnet" search, where all of
the found subnets at or below the specified network will be returned.
Ending a IP or CIDR query with a single "*" will result in a
-"supernet" search.
+"supernet" search, returning all the networks enclosing the queried
+network. (A plain network query will return the closest enclosing
+network, including matching networks).
+
+It supports (as of v0.4) IPv6 CIDR networks and network blocks, and
+supports indexing network-block type values. That is, you can index
+values like "10.131.10.0 - 10.131.11.255" and "3ffe:4:5::0 -
+3ffe:4:6::ffff".
REQUIREMENTS
-python 2.2 or later
+python 2.2 or later.
INSTALL
-This can be run from it's source directory, which is the preferable
-way to do it.
+This can be run from it's source directory, which is a fine way to do
+it.
However, if you wish to install it, as root:
This is assuming that you are running it from the distribution
directory.
-% tar zxvf python-rwhoisd-0.1.tar.gz
+% tar zxvf python-rwhoisd-0.4.tar.gz
-% cd python-rwhoisd-0.1
+% cd python-rwhoisd-0.4
% ./bin/pyrwhoisd sample_data/example_schema \
sample_data/example_data &
Voila! You should now have some sort of rwhois server running on port
4321
+You can also give it multiple data files:
+
+% ./bin/pyrwhoisd sample_data/example_schema sample_data/*_data &
+
CONFIGURING IT
Edit rwhoisd/config.py.
* These files may have records separated by blank lines instead of
dashes.
-* They are not sensitive to trailing separators (whitespace or
- dashes)
+* They are not sensitive to trailing separators (whitespace or dashes)
* They do not have to be arranged in any special manner. That is, the
C rwhoisd forces (or at least encourages) you to arrange your data