ランキングに戻る

mr-karan/doggo

Godoggo.mrkaran.dev

:dog: Command-line DNS Client for Humans. Written in Golang

dnsdns-clientdoh
スター成長
スター
4.4k
フォーク
140
週間成長
Issue
8
1k2k3k4k
2020年12月2022年10月2024年9月2026年7月
成果物Go Modulesgo get github.com/mr-karan/doggo
README

doggo

🐶 Command-line DNS client for humans

Web Interface · Documentation

doggo CLI usage


doggo is a modern command-line DNS client (like dig) written in Golang. It outputs information in a neat concise manner and supports protocols like DoH, DoT, DoQ, and DNSCrypt as well.

It's totally inspired by dog which is written in Rust. I wanted to add some features to it but since I don't know Rust, I found it as a nice opportunity to experiment with writing a DNS Client from scratch in Go myself. Hence the name dog + go => doggo.

Installation

curl -fsSL https://raw.githubusercontent.com/mr-karan/doggo/main/install.sh | sh

Package Managers

  • Arch Linux: pacman -S doggo
  • Eget: eget mr-karan/doggo
  • Gentoo: emerge net-dns/doggo
  • Homebrew: brew install doggo
  • MacPorts (macOS): port install doggo
  • Mise: mise use -g doggo@latest
  • Nix: nix profile install nixpkgs#doggo
  • Scoop (Windows): scoop install doggo
  • Winget (Windows): winget install doggo

Binary Install

You can download pre-compiled binaries for various operating systems and architectures from the Releases page.

Go Install

If you have Go installed on your system, you can use the go install command:

go install github.com/mr-karan/doggo/cmd/doggo@latest

The binary will be available at $GOPATH/bin/doggo.

Docker

docker pull ghcr.io/mr-karan/doggo:latest
docker run --rm ghcr.io/mr-karan/doggo:latest example.com

For more installation options, including binary downloads and Docker images, please refer to the full installation guide.

Quick Start

Here are some quick examples to get you started with doggo:

# Simple DNS lookup
doggo example.com

# Query MX records using a specific nameserver
doggo MX github.com @9.9.9.9

# Use DNS over HTTPS
doggo example.com @https://cloudflare-dns.com/dns-query

# JSON output for scripting
doggo example.com --json | jq '.responses[0].answers[].address'

# Reverse DNS lookup
doggo --reverse 8.8.8.8 --short

# Using Globalping
doggo example.com --gp-from Germany,Japan --gp-limit 2

Features

  • Human-readable output with color-coded and tabular format
  • JSON output support for easy scripting and parsing
  • Multiple transport protocols: DoH, DoT, DoQ, TCP, UDP, DNSCrypt
  • EDNS support with Client Subnet (ECS), NSID, Cookies, Padding, and Extended Errors
  • Additional section support for glue records and supplementary data
  • Internationalized Domain Names (IDN) with automatic punycode conversion
  • Support for ndots and search configurations
  • Multiple resolver support with customizable query strategies
  • IPv4 and IPv6 support
  • Web interface available
  • Shell completions for zsh and fish
  • Reverse DNS lookups
  • Flexible query options including various DNS flags
  • Debug mode for troubleshooting
  • Response time measurement
  • Cross-platform support

Documentation

For comprehensive documentation, including detailed usage instructions, configuration options, and advanced features, please visit our official documentation site.

Sponsorship

If you find doggo useful and would like to support its development, please consider becoming a sponsor. Your support helps maintain and improve this open-source project.

GitHub Sponsors

Every contribution, no matter how small, is greatly appreciated and helps keep this project alive and growing. Thank you for your support! 🐶❤️

License

LICENSE

関連リポジトリ
XTLS/Xray-core

Xray, Penetrates Everything. Also the best v2ray-core. Where the magic happens. An open platform for various uses.

GoGo ModulesMozilla Public License 2.0xrayvless
t.me/projectXray
40.5k5.7k
AdguardTeam/AdGuardHome

Network-wide ads & trackers blocking DNS server

TypeScriptnpmGNU General Public License v3.0dnsadblock
adguard.com/adguard-home/overview.html
35.6k2.4k
ehang-io/nps

一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.

GoGo ModulesGNU General Public License v3.0sockstcp
ehang.io/nps/documents
34.1k6.1k
521xueweihan/GitHub520

:kissing_heart: 让你“爱”上 GitHub,解决访问时图裂、加载慢的问题。(无需安装)

PythonPyPIdnsgithub
29.2k2.7k
hagezi/dns-blocklists

DNS-Blocklists: For a better internet - keep the internet clean!

TextGNU General Public License v3.0dnsads
24.6k753
ginuerzh/gost

GO Simple Tunnel - a simple tunnel written in golang

GoGo ModulesMIT Licensegotunnel
18.1k2.6k
owasp-amass/amass

In-depth attack surface mapping and asset discovery

GoGo ModulesOthergodns
owasp.org/www-project-amass/
14.9k2.2k
OJ/gobuster

Directory/File, DNS and VHost busting tool written in Go

GoGo ModulesApache License 2.0gopentesting
13.9k1.6k
DNSCrypt/dnscrypt-proxy

dnscrypt-proxy 2 - A flexible DNS proxy, with support for encrypted DNS protocols.

GoGo ModulesISC Licensednscryptdnscrypt-proxy2
dnscrypt.info
13.5k1.1k
safing/portmaster

🏔 Love Freedom - ❌ Block Mass Surveillance

GoGo ModulesGNU General Public License v3.0application-firewalldns
safing.io
13.3k550
BishopFox/sliver

Adversary Emulation Framework

GoGo ModulesGNU General Public License v3.0security-toolsimplant
11.5k1.6k
pi-hole/docker-pi-hole

The official Pi-hole Docker image from pi-hole.net

ShellOtherpi-holedocker-container
pi-hole.net
11.4k1.2k