A simple and free whois client written in Nim
Go to file
2021-06-09 23:03:11 -03:00
apiReturns removed bin 2021-06-07 15:10:24 -03:00
example Removed runnable example from whois; Removed builded example 2021-06-09 23:03:11 -03:00
src Removed runnable example from whois; Removed builded example 2021-06-09 23:03:11 -03:00
tests Added licence; added readme; removed useless imports of strutils in src/whois/api_doyosi.nim; fixed api call 2021-06-09 13:05:38 -03:00
.gitignore Removed runnable example from whois; Removed builded example 2021-06-09 23:03:11 -03:00
changelog.md Added changelog; Changed lib version; changed files headers 2021-06-09 22:50:20 -03:00
license Added licence; added readme; removed useless imports of strutils in src/whois/api_doyosi.nim; fixed api call 2021-06-09 13:05:38 -03:00
readme.md Added compatibility to version 1.4.0; added help to install with nimble using package name 2021-06-09 22:21:20 -03:00
whois.nimble Added changelog; Changed lib version; changed files headers 2021-06-09 22:50:20 -03:00

Whois.nim

The Whois.nim is a simple whois client. With cache (kashae)!


Requirements

  • The Nim (Official website) programming language (Min version 1.4.0)
  • Nimble (Github), the Nim's package manager

Hint: Install Nim with Choosenim (Github)

Installation

Directly with Nimble

# Install directly with Nimble
nimble install whois

or

Directly with Nimble (with url)

# Install directly with Nimble (with url)
nimble install https://gitea.com/Thisago/whois.nim

or

Manually with Nimble

# Clone repo
git clone https://gitea.com/Thisago/whois.nim

# go to folder
cd whois

# Install (with Nimble)
nimble install -y

Usage

example/example.nim

import whois

echo whois("duckduckgo.com")

# or

var domain = "metager.org".toDomain # convert to a `Domain` instance
domain.update() # Get data from API

echo domain

Run:

nim c -r -d:ssl -d:release example/example.nim

NOTE: Compile with -d:ssl


Contributing

Its easy to create a parser for another API!

Just see src/whois/api_doyosi.nim to understand how simple is it.

All definitions is in src/whois/core.nim.

  • Create a new file in src/whois/ called api_APINAME.nim
  • Import module src/whois/core.nim
  • Export a function named apiFetch
  • In src/whois.nim
    • Import the new api parser using:
      from whois/api_APINAME.nim import nil
      
    • Call the apiFetch function in update in end like:
      if api_APINAME.apiFetch(self, noCache): return # If any error, try next API
      

NOTICE

The implemented API service has no relation with this lib.