pythonwhois =========== A WHOIS retrieval and parsing library for Python. ## Dependencies None! All you need is the Python standard library. ## Instructions The manual (including install instructions) can be found in the doc/ directory. A HTML version is also viewable [here](http://cryto.net/pythonwhois). ## Goals * 100% coverage of WHOIS formats. * Accurate and complete data. * Consistently functional parsing; constant tests to ensure the parser isn't accidentally broken. ## Features * WHOIS data retrieval * Able to follow WHOIS server redirects * Won't get stuck on multiple-result responses from verisign-grs * WHOIS data parsing * Base information (registrar, etc.) * Dates/times (registration, expiry, ...) * Full registrant information (!) * Nameservers * Optional WHOIS data normalization * Attempts to intelligently reformat WHOIS data for better (human) readability * `pwhois`, a simple WHOIS tool using pythonwhois * Easily readable output format * Can also output raw WHOIS data * ... and JSON. * Automated testing suite * Will detect and warn about any changes in parsed data compared to previous runs * Guarantees that previously working WHOIS parsing doesn't unintentionally break when changing code ## It doesn't work! * It doesn't work at all? * It doesn't parse the data for a particular domain? * There's an inaccuracy in parsing the data for a domain, even just a small one? If any of those apply, don't hesitate to file an issue! The goal is 100% coverage, and we need your feedback to reach that goal. ## Contributing Feel free to fork and submit pull requests (to the `develop` branch)! If you change any parsing or normalization logic, ensure to run the full test suite before opening a pull request. Instructions for that are below. Please note that this project uses tabs for indentation. All commands are relative to the root directory of the repository. **Pull requests that do _not_ include output from test.py will be rejected!** ### Adding new WHOIS data to the testing set pwhois --raw thedomain.com > test/data/thedomain.com ### Checking the currently parsed data (while editing the parser) ./pwhois -f test/data/thedomain.com/ . (don't forget the dot at the end!) ### Marking the current parsed data as correct for a domain Make sure to verify (using `pwhois` or otherwise) that the WHOIS data for the domain is being parsed correctly, before marking it as correct! ./test.py update thedomain.com ### Running all tests ./test.py run all ### Testing a specific domain ./test.py run thedomain.com ### Running the full test suite including support for multiple python versions tox ### Generating documentation You need [ZippyDoc](http://cryto.net/zippydoc) (which can be installed through `pip install zippydoc`). zpy2html doc/*.zpy