diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a17b37 --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ +pythonwhois +=========== + +A WHOIS retrieval and parsing library for Python. + +## Dependencies + +None! All you need is the Python standard library. + +## 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! 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. + +### 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 the full test suite + + ./test.py run all + +### Testing a specific domain + + ./test.py run thedomain.com +