All Projects → fortio → dnsping

fortio / dnsping

Licence: Apache-2.0 license
DNS Ping: to check packet loss and latency issues with DNS servers

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
shell
77523 projects
Roff
2310 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to dnsping

doq-proxy
DNS-over-QUIC to UDP Proxy
Stars: ✭ 57 (+3.64%)
Mutual labels:  dns
GoHole
GoHole is a DNS server written in Golang with the same idea than the PiHole, blocking advertisements's and tracking's domains
Stars: ✭ 28 (-49.09%)
Mutual labels:  dns
HostSpider
Domain information gathering tool
Stars: ✭ 61 (+10.91%)
Mutual labels:  dns
dnsredir
Yet another seems better forward/proxy plugin for CoreDNS
Stars: ✭ 58 (+5.45%)
Mutual labels:  dns
docker-nxfilter
🐳 Run NxFilter in Docker!
Stars: ✭ 28 (-49.09%)
Mutual labels:  dns
html-over-dns
An experiment to host a website with the content served over DNS.
Stars: ✭ 29 (-47.27%)
Mutual labels:  dns
docker-nginx-proxy-cloudflare-companion
Automatically update CNAME records when Docker container starts via Cloudflare
Stars: ✭ 26 (-52.73%)
Mutual labels:  dns
dnstwister
Domain name permutation as a service
Stars: ✭ 46 (-16.36%)
Mutual labels:  dns
cloudflare-ddns-updater
Dynamic DNS (DDNS) service based on Cloudflare! Access your home network remotely via a custom domain name without a static IP! Written in pure BASH~
Stars: ✭ 434 (+689.09%)
Mutual labels:  dns
encrypted-dns-server
An easy to install, high-performance, zero maintenance proxy to run an encrypted DNS server.
Stars: ✭ 566 (+929.09%)
Mutual labels:  dns
d9scan
Network Scanner with Backdoor Detection, other Nmap resources and syn-protection detection
Stars: ✭ 23 (-58.18%)
Mutual labels:  dns
arp-dns-attacks
ARP spoofing, HTTP redirection, DNS spoofing and DNS forging using pcap library
Stars: ✭ 25 (-54.55%)
Mutual labels:  dns
uppersafe-osfw
UPPERSAFE Open Source Firewall
Stars: ✭ 21 (-61.82%)
Mutual labels:  dns
certbot-dns-ovh
Certbot plugin to respond to DNS-01 challenges by updating the zone.
Stars: ✭ 20 (-63.64%)
Mutual labels:  dns
powerdns
PowerDNS dnsdist, recursor, authoritative, and admin interface. Supports DNSCrypt, DoH, and DoT.
Stars: ✭ 35 (-36.36%)
Mutual labels:  dns
web-dns
Query DNS via HTTP Get
Stars: ✭ 16 (-70.91%)
Mutual labels:  dns
afdns
Ad free DNS server. A docker container with a DNS server configured to block advertisement hosts.
Stars: ✭ 27 (-50.91%)
Mutual labels:  dns
xip.name
Simple wildcard DNS inspired by xip.io
Stars: ✭ 143 (+160%)
Mutual labels:  dns
Tweetstorm
🐦 Twitter UserStream APIの簡単な代替実装 / A simple substitute implementation for the Twitter UserStream
Stars: ✭ 55 (+0%)
Mutual labels:  dns
terraform-provider-dns
Supports DNS updates (RFC 2136) and can optionally be configured with secret key based transaction authentication (RFC 2845).
Stars: ✭ 75 (+36.36%)
Mutual labels:  dns

DNSping

PkgGoDev Go Report Card Docker Build Docker Pulls

DNS Ping checks packet loss and latency issues with DNS servers

Installation

If you have golang, easiest install is go install fortio.org/dnsping@latest

Or with docker docker run fortio/dnsping ... (we have multi architecture images)

Or brew custom tap brew install fortio/tap/dnsping (please star the project so it can go in core and get binary bottles built)

Otherwise head over to https://github.com/fortio/dnsping/releases for binary releases

Usage:

dnsping [flags] query server

$ dnsping -h
dnsping v1.1.5 usage:
	dnsping [flags] query server
eg:	dnsping www.google.com. 127.0.0.1
with flags:
  -c requests
    	How many requests to make. Default is to run until ^C
  -fixed-id int
    	Non 0 id to use instead of random or sequential
  -i wait
    	How long to wait between requests (default 1s)
  -json path
    	Json output to provided file path or '-' for stdout (empty = no json output)
  -loglevel value
    	loglevel, one of [Debug Verbose Info Warning Error Critical Fatal] (default Info)
  -no-recursion
    	Pass to disable (default) recursion.
  -p Port
    	Port to connect to (default 53)
  -q type
    	Query type to use (A, AAAA, SOA, CNAME...) (default "A")
  -sequential-id
    	Use sequential ids instead of random.
  -t Timeout
    	Timeout for each query (default 700ms)
  -v	Display version and exit.

Sample run

dnsping -fixed-id 42 -json sampleResult.json -c 8  www.google.com 8.8.4.4
16:08:03 I Will query 8 times, sleeping 1s in between, the server 8.8.4.4:53 for A (1) record for www.google.com.
16:08:03 I   8.7 ms   1: [www.google.com.	298	IN	A	172.217.6.68]
16:08:04 I  16.5 ms   2: [www.google.com.	229	IN	A	172.217.6.36]
16:08:05 I  14.1 ms   3: [www.google.com.	179	IN	A	216.58.194.196]
16:08:06 E 700.3 ms   4: failed call: read udp 10.10.50.62:65456->8.8.4.4:53: i/o timeout
16:08:07 I  15.0 ms   5: [www.google.com.	195	IN	A	216.58.194.196]
16:08:08 I  13.5 ms   6: [www.google.com.	196	IN	A	216.58.194.196]
16:08:09 I  14.8 ms   7: [www.google.com.	179	IN	A	216.58.194.196]
16:08:10 I  15.5 ms   8: [www.google.com.	285	IN	A	172.217.6.68]
1 error (12.50%), 7 success.
response time (in ms) : count 8 avg 99.792926 +/- 227 min 8.684216 max 700.257965 sum 798.343406
# range, mid point, percentile, count
>= 8.68422 <= 9 , 8.84211 , 12.50, 1
> 12 <= 14 , 13 , 25.00, 1
> 14 <= 16 , 15 , 75.00, 4
> 16 <= 18 , 17 , 87.50, 1
> 500 <= 700.258 , 600.129 , 100.00, 1
# target 50% 15
# target 90% 540.052
# target 99% 684.237
Successfully wrote 1212 bytes of Json data to sampleResult.json

Which also produces the json:

{
  "Config": {
    "Server": "8.8.4.4:53",
    "Query": "www.google.com.",
    "HowMany": 8,
    "Interval": 1000000000,
    "Timeout": 700000000,
    "FixedID": 42,
    "QueryType": 1,
    "SequentialIDs": false,
    "Recursion": true
  },
  "Errors": 1,
  "Success": 7,
  "Stats": {
    "Count": 8,
    "Min": 8.684216,
    "Max": 700.257965,
    "Sum": 798.3434060000001,
    "Avg": 99.79292575000001,
    "StdDev": 226.96508473843934,
    "Data": [
      {
        "Start": 8.684216,
        "End": 9,
        "Percent": 12.5,
        "Count": 1
      },
      {
        "Start": 12,
        "End": 14,
        "Percent": 25,
        "Count": 1
      },
      {
        "Start": 14,
        "End": 16,
        "Percent": 75,
        "Count": 4
      },
      {
        "Start": 16,
        "End": 18,
        "Percent": 87.5,
        "Count": 1
      },
      {
        "Start": 500,
        "End": 700.257965,
        "Percent": 100,
        "Count": 1
      }
    ],
    "Percentiles": [
      {
        "Percentile": 50,
        "Value": 15
      },
      {
        "Percentile": 90,
        "Value": 540.051593
      },
      {
        "Percentile": 99,
        "Value": 684.2373278
      }
    ]
  }
}

Made thanks to https://github.com/miekg/dns (and https://github.com/fortio/fortio stats and logger)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].