X-Git-Url: https://blacka.com/cgi-bin/gitweb.cgi?p=python-rwhoisd.git;a=blobdiff_plain;f=README;h=aaa88955be5812b88cdf03d25c68a92923bffa7c;hp=e5bd07549b7e3724e7abf3da2590658c4fbd3072;hb=HEAD;hpb=38b4406b046fb794322e948fd77cc1cbf28baa25 diff --git a/README b/README index e5bd075..aaa8895 100644 --- a/README +++ b/README @@ -1,21 +1,28 @@ 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.4 or later +python 2.2 or later. INSTALL @@ -48,6 +55,10 @@ directory. 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. @@ -66,8 +77,7 @@ following differences, however: * 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 @@ -76,9 +86,6 @@ following differences, however: * This server does not support attribute "aliases". -* It doesn't quite support indexing network blocks (i.e., values like - "10.1.42.0 - 10.1.42.255"). - It should be noted that this server in small ways violates the description put forth by RFC 2167. In particular, it does not establish independent schemas for each authority area. There may be