A simple Whois server with a simple simple API and a front-end built with AngularJS.

James Peret: 0fa682e66e url fix 10 ans auparavant
public 0fa682e66e url fix 10 ans auparavant
views 46d58a4053 J1X Whois Server modifications 10 ans auparavant
.DS_Store 217bf9bd90 Added a AngularJS front end 10 ans auparavant
.gitignore 46d58a4053 J1X Whois Server modifications 10 ans auparavant
.ruby-version 66912bc157 update this old bag of bones 10 ans auparavant
Gemfile e4cfe74471 ruby version change fix for heroku... 10 ans auparavant
Gemfile.lock 55d345acc7 gems update 10 ans auparavant
README.md ecc3a52787 Readme API option 10 ans auparavant
config.ru 75fab7a59e Rack CORS re config fix 3 10 ans auparavant
json_parser.rb 217bf9bd90 Added a AngularJS front end 10 ans auparavant
main.rb 217bf9bd90 Added a AngularJS front end 10 ans auparavant
unirest_parser.rb 217bf9bd90 Added a AngularJS front end 10 ans auparavant

README.md

J1X Whois API

A simple WHOIS lookup API.

Based on the Whoiz application by Jason Ormand and using the Ruby Whois gem.

Example Domain Lookup

{
  "domain": "jamesperet.com",
  "owner": "James Peret",
  "registrar": "eNom Inc.",
  "expires_on": "2016-06-07T16:01:00.00Z",
  "update_on": "2015-05-13 00:00:00 -0300",
  "registered?": true,
  "available?": false
}

Accessing the API

Provide a url for the API and get a nicely formatted JSON response with the domain information.

Browser

http://whois.j1x.co
http://whois.j1x.co/lookup.json?url=jamesperet.com

curl

curl http://whois.j1x.co/lookup.json?url=jamesperet.com

Query Options

This are the options for querying the API:

  • url - The domain url that will be queried. Omit the http://www..
  • raw=true - the JSON response will include a raw version of the data received by the registrar
  • dev=true - Only basic information and the raw version will be included in the JSON response. No parsing will be done with the data. This is useful for debugging.

Example:

http://whois.j1x.co/lookup.json?url=google.com&raw=true

Install

Clone

git clone git://gitlab.j1x.co/j1x/whois-server.git

Restrict It

Edit main.rb:

before do
  response['Access-Control-Allow-Origin'] = 'http://yourwebsite.com'
end

Or use * to allow any website to access the API.

Deploy It

heroku create
git push heroku master
heroku open

Domain Support

For now the supported domains are: .com, .net, .com.br and .network. Support for more domains will come in the future.

The queries for .com.br domains usually come with limited information because of the registrar's API call allowance.

There is also a bug where some .com domains return an error (ex: google.com).

Development Resources

Tools

  • Rubular - a Ruby regular expression editor

Articles