Git Product home page Git Product logo

mwhois's Introduction

mwhois
Copyright (c) 2015 Antonios A. Chariton <[email protected]>

Description: 
mwhois is server software compatible with the whois(1) command
on most Linux and Unix systems.  It is  fully compliant with the
RFC 3912. It can serve domain name and  IPv4  whois records when
queried and uses a Linux / Unix filesystem structure for storing
all the records. 

Requirements:
- Linux / Unix based operating system
- Python 2.7

License:
The project is under the MIT License on its whole,  except from
the "netaddr" python library that has a separate license, which
is included in the respective folder.  The library  is included
in order to ensure compatibility and is updated when deemed
necessary.

Usage:
In order to use the server, simply run the whois(1) command  in
any operating system with the -h flag followed by your server's
IP Address and then the  query.  An  example  asking  localhost
about 10.0.0.0 is: whois -h 127.0.0.1 10.0.0.1.

Configuration:
In the file mwhoisd there are four (4)  configuration variables
in the beggining, lines 8-11, conveniently named as  following: 
LISTEN_ADDRESS,   LISTEN_PORT,   MAX_QUERY_SIZE   and   LOGFILE
Each one is self-explanatory, but here is the explanation  just
in case:
- LISTEN_ADDRESS : The IPv4 Address  the  server   listens   to
- LISTEN_PORT : The Port Number where  the  server  listens  at
- MAX_QUERY_SIZE : The maximum size, in bytes, of a valid query
                   for either an IPv4 Address or a Domain  Name
- LOGFILE : The file path where the logs of the server will  be
            saved to. If it is empty the server keeps  no  logs

Files:
There are several files in this repository that required and  a
few others that are optional but increase the ease of  use  for
this software:
- mwhoisd : The primary server than runs and serves all clients
            If  it  runs on the default port 43, or writes logs 
            in the default directory it  has  to  be running as 
            the user 'root'. 
- LICENSE : The license of the software
- DOC : This file, containing useful documentation
- add-ip : A helpful script to add IP Ranges  in  the  database
- add-ip-auto : A wizard for adding IP Blocks to  the  database
- add-ip-wind : A wizard to add IP Blocks w/ "ID" instead of AS
- add-domain : A script to add domain  names  in  the  database
- hwhois : A bash script to use in order to  contact  a  custom
           whois server such  as  whois.daknob.net  (127.0.0.1)
- netaddr : An external python library required for the  server
- db : A folder in which lies the internal database for lookups

Storage Structure:
The database that is served by mwhois is using the Linux / Unix
filesystem in order to store content. There is a  folder  named
"db" with two primary sub-folders, "ipv4" and "domains". In the
first folder, all whois content for IPv4 Addresses is  located,
and in the second folder, there is all the  whois  content  for 
the domain names. All IPv4 records are stored  in  files  named
after the IP Address  CIDR  Block.  For  example,  the  network
10.0.0.0/8 is stored in a file named 10.0.0.0-8  that  contains
all the information that will be served. All the new  lines  in
this file must be represented by <CR><LF> in order to  maintain
full compatibility with RFC 3912. As far as  domain  names  are 
concerned, the storage is similar, where the name of  the  file 
is the actual domain name.

mwhois's People

Contributors

daknob avatar bish0polis avatar

Stargazers

UAN avatar Mohammad Reza avatar Chris Wopat avatar Sergey Mutin avatar Riccardo Bessone avatar Cocoa Hoto avatar Stacy Olivas avatar Drew Bloechl avatar Arpit Solanki avatar Arun Pereira avatar  avatar Finn avatar Dwight Spencer (denzuko@mastodon.social) avatar Ollie avatar lucas avatar Minho Ryang avatar Joe Block avatar Kevin Lyda avatar  avatar

Watchers

 avatar James Cloos avatar  avatar Chris Hancock avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.