corny/dnscheck

Nameserver check for public-dns.info

33

stars

63

commits

Go

primary language

Oct 17, 2023

updated

public-dns.info

README

DNS Check

Build Status Codecov

This code powers the DNS check of the Public DNS list service. It is written in Go and it scales very well.

Dependencies

Configuration

Database configuration

The program is intended to be part of a Rails application. So you need a database.yml with the credentials for your database.

Using a socket

development:
  socket: /var/run/mysqld/mysqld.sock
  database: nameservers_development
  username: root
  password:

Using a tcp connection

production:
  host: 127.0.0.1
  database: nameservers
  username: nameservers
  password: topsecret

Database scheme

After creating the database apply the structure.sql:

mysql $database < structure.sql

Domain list

Create a list of domains to query the nameservers for. You should include at least one domain that does not exist. All of the domains should resolve to the same IP addresses (not location based / GeoIP).

non-existent.example.com
wikileaks.org
rotten.com

Usage

Replace env with your environment name (e.g. development or production) and pass the path to your database.yml. dnscheck -h prints a list of all supported arguments.

RAILS_ENV=env dnscheck check --domains path/to/domains --database path/to/database.yml --geodb path/to/GeoLite2-City.mmdb

Contributors

corny

58 commits

dmke

5 commits

corny/dnscheck

Nameserver check for public-dns.info

33

stars

63

commits

Go

primary language

Oct 17, 2023

updated

public-dns.info

README

DNS Check

Build Status Codecov

This code powers the DNS check of the Public DNS list service. It is written in Go and it scales very well.

Dependencies

Configuration

Database configuration

The program is intended to be part of a Rails application. So you need a database.yml with the credentials for your database.

Using a socket

development:
  socket: /var/run/mysqld/mysqld.sock
  database: nameservers_development
  username: root
  password:

Using a tcp connection

production:
  host: 127.0.0.1
  database: nameservers
  username: nameservers
  password: topsecret

Database scheme

After creating the database apply the structure.sql:

mysql $database < structure.sql

Domain list

Create a list of domains to query the nameservers for. You should include at least one domain that does not exist. All of the domains should resolve to the same IP addresses (not location based / GeoIP).

non-existent.example.com
wikileaks.org
rotten.com

Usage

Replace env with your environment name (e.g. development or production) and pass the path to your database.yml. dnscheck -h prints a list of all supported arguments.

RAILS_ENV=env dnscheck check --domains path/to/domains --database path/to/database.yml --geodb path/to/GeoLite2-City.mmdb

Contributors

corny

58 commits

dmke

5 commits

Languages

Go

100.0%