Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
dnsglobe — Vérificateur global de propagation DNS en TUI — observez la propagation d'un enregistrement DNS sur 34 résolveurs publics dans le monde, sur une carte du monde dans votre terminal | Kitploit
Outils/GitHubGitHub/514-labs/dnsglobe
ReconnaissanceCartographie RéseauCollecte d'InformationsSécurité RéseauUtilitaires et FrameworksAnalyse DNS
GitHub514-labs/dnsglobe

dnsglobe

Vérificateur global de propagation DNS en TUI — observez la propagation d'un enregistrement DNS sur 34 résolveurs publics dans le monde, sur une carte du monde dans votre terminal

Voir le dépôt
9823444il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
# dnsglobe

[![crates.io](https://img.shields.io/crates/v/dnsglobe)](https://crates.io/crates/dnsglobe)
[![dnsglobe](https://img.shields.io/aur/version/dnsglobe?label=aur%20dnsglobe)](https://aur.archlinux.org/packages/dnsglobe/)
[![dnsglobe-bin](https://img.shields.io/aur/version/dnsglobe-bin?label=aur%20dnsglobe-bin)](https://aur.archlinux.org/packages/dnsglobe-bin/)
[![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)

**Un vérificateur global de propagation DNS pour votre terminal** — une TUI Rust qui
interroge 34 résolveurs DNS publics dans le monde en parallèle, compare leurs
réponses et affiche la propagation de votre enregistrement sur une carte du monde.

![démo dnsglobe — vérification des enregistrements A et NS d'un domaine auprès de 34 résolveurs dans le monde avec EDNS Client Subnet, alternance du sous-réseau client, puis transformation de la carte du monde en globe rotatif](https://assets.kitploit.com/production/public/readmes/9145/9bb4f79868b15cf040fd5bc0c84a4ff9de2f946b0141b4817551f8f46722fdd7.gif)

Pensez à dnschecker.org / whatsmydns.net, mais dans votre terminal, avec le mode watch :
lancez une vérification et il re-interroge jusqu'à ce que l'enregistrement se soit propagé partout.

Les résolveurs couvrent les réseaux anycast mondiaux (Google, Cloudflare, Quad9),
l'Amérique du Nord, l'Europe, la Russie, le Moyen-Orient, l'Asie de l'Est et l'hémisphère
sud (Telstra AU, SafeSurfer NZ, UOL BR) — chacun interrogé directement, afin que
vous voyiez la vue actuelle propre à chaque serveur de l'enregistrement.

Chaque résolveur est interrogé directement (sans cache, EDNS0, repli TCP pour les
réponses tronquées), donc ce que vous voyez est la vue actuelle propre à chaque serveur de
l'enregistrement. Les réponses partageant un même enregistrement sont regroupées — ainsi, un DNS round-robin
(chaque résolveur mettant en cache un sous-ensemble différent d'un pool d'IP) compte comme une
réponse cohérente, et non vingt réponses contradictoires. La jauge de propagation indique
combien de résolveurs sont dans le groupe majoritaire ; les valeurs aberrantes sont signalées
`≠ DIFFERS` une fois tous les résultats reçus.

Le tableau tient dans un terminal de 80 colonnes : l'adresse IPv4 complète de chaque résolveur,
le temps de réponse, la TTL et le compte à rebours d'expiration restent intacts, et le
verdict de chaque ligne se réduit au glyphe dans la marge gauche (`✓ ≠ ! ↻ ∅ ✗`) pour que la réponse
garde la place. Le compte à rebours est volontairement approximatif — `45s`, `4m`, `2h`, `1d`
— car une colonne de secondes défilant en désordre est du bruit au-delà d'une minute.

Lorsque le terminal est assez large, une vue du monde apparaît à droite
avec un point par résolveur, coloré selon son état (vert = accord, magenta = différence,
rouge = erreur, jaune = en cours). La vue s'adapte à la largeur : les terminaux ≥157
colonnes obtiennent une carte du monde plate, les plus étroits (≥131 colonnes) un globe 3D
en rotation, qui nécessite moins de colonnes ; redimensionner au-delà du seuil transforme l'un
en l'autre. Ctrl+O permet de basculer manuellement entre carte et globe, et `--view auto|map|globe`
(ou `view = "..."` dans le fichier de configuration) impose un style directement.

Chaque résolveur est interrogé pour savoir quel site vous répond, via NSID
(RFC 5001) — une option EDNS que le nœud qui répond remplit avec son propre nom
(`gpdns-yul`, `yul01`, `res721.qyul1`, `jfk-dns1-02.inet.centurylink.net`).
Cela ne nécessite aucun support par opérateur, donc les résolveurs que vous ajoutez vous-même peuvent indiquer un
site. Lorsque NSID ne nomme aucun lieu, les requêtes d'identification spécifiques à l'opérateur
prennent le relais : Quad9 (`TXT id.server.on.quad9.net`), Cloudflare
(`CH TXT id.server`), Google (sous-réseau de sortie via
`TXT o-o.myaddr.l.google.com` mis en correspondance avec `TXT locations.publicdns.goog`),
OpenDNS (`TXT debug.opendns.com`), CleanBrowsing et Neustar UltraDNS. Le
site découvert s'affiche dans la colonne Loc sous forme de codes de style `→YUL`, et le
point du résolveur sur la carte se déplace vers le POP qui sert réellement vos requêtes.

## Usage

Installation :

```sh
brew install 514-labs/tap/dnsglobe   # Homebrew (macOS/Linux)
cargo install dnsglobe               # from crates.io
yay -S dnsglobe                      # from archlinux aur (compile from source)
yay -S dnsglobe-bin                  # from archlinux aur (install prebuilt binary)
nix run github:514-labs/dnsglobe     # Nix flakes (builds from source)
# or grab a prebuilt binary from the GitHub Releases page
```

Exécution :

```sh
dnsglobe                            # start empty, type a domain
dnsglobe example.com                # query immediately and watch
dnsglobe example.com TXT            # same, starting on TXT records
dnsglobe --once example.com TXT     # no TUI: print results, exit (for scripts)
dnsglobe example.com --ecs 203.0.113.0/24        # see the zone as that client network does
dnsglobe --once example.com --ecs 203.0.113.0/24,198.51.100.0/24
                                    # one table per subnet + a convergence summary
```

### EDNS Client Subnet (ECS)

`--ecs` (ou `ecs = [...]` dans le fichier de configuration) ajoute une option EDNS Client Subnet
([RFC 7871](https://datatracker.ietf.org/doc/html/rfc7871)) à chaque
requête, afin que les zones GeoDNS répondent pour ce réseau client au lieu du
point de vue du résolveur lui-même. Les sous-réseaux sont des CIDR ou des IP nues ; la plupart des résolveurs
publics utilisent au plus /24 (IPv4) ou /56 (IPv6). Avec plusieurs sous-réseaux
configurés, Ctrl+N fait défiler le sous-réseau actif (plus une position *off*) et
relance la requête immédiatement ; `--once` exécute chaque sous-réseau et se termine par un
récapitulatif de convergence par sous-réseau. Les résolveurs qui ignorent délibérément ECS
(Cloudflare, Quad9, …) sont marqués `NO ECS` — leur réponse est affichée à titre de
référence mais exclue du pourcentage de propagation, car elle décrit
leur propre emplacement, et non le réseau sondé.

### Keys

| Key            | Action                          |
| -------------- | ------------------------------- |
| type / ⌫ / Del | modifier le domaine             |
| ←/→ / Home/End | déplacer le curseur dans le champ du domaine |
| Enter          | lancer la vérification et surveiller : re-interroge toutes les 30 s jusqu'à ce que la propagation atteigne 100 % |
| Ctrl+R         | arrêter ou reprendre la surveillance |
| Tab / Shift-Tab | sélectionner le type d'enregistrement (A, AAAA, CNAME, MX, NS, TXT, SOA) et relancer la requête |
| ↑/↓ / PgUp/PgDn | déplacer la surbrillance dans le tableau des résolveurs (défilement automatique) |
| +              | ajouter un résolveur pour cette session (nom, IP, emplacement et position sur la carte facultatifs) |
| Ctrl+X         | supprimer le résolveur en surbrillance pour cette session |
| Ctrl+S         | changer le tri du tableau : résolveur / emplacement / ping / statut / réponse |
| Ctrl+O         | basculer la vue du monde entre carte plate et globe rotatif |
| Ctrl+N         | faire défiler le sous-réseau client ECS et relancer la requête (uniquement si `--ecs`/la config en définit un) |
| Ctrl+U         | effacer le domaine             |
| Esc / Ctrl+C   | quitter                         |

## Configuration

En option, ajoutez vos propres résolveurs — ou remplacez entièrement la liste intégrée —
avec un fichier de configuration TOML dans `~/.config/dnsglobe/config.toml`
(`$XDG_CONFIG_HOME/dnsglobe/config.toml` si défini). Définissez `DNSGLOBE_CONFIG` pour
utiliser un autre chemin.

```toml
# Set to true to replace the built-in list instead of extending it —
# e.g. to watch propagation across your own nameservers only.
replace = false

# EDNS Client Subnet(s) to query with (Ctrl+N cycles; --ecs overrides).
ecs = ["203.0.113.0/24"]

# World-view style: auto (default — pick by terminal width), map, or globe.
# The --view flag overrides this.
view = "auto"

[[resolvers]]
name = "Corp DNS"        # required — shown in the Resolver column
ip = "10.0.0.53"         # required — IPv4 or IPv6, queried on port 53
location = "HQ"          # optional — Loc column / location sort
lat = 40.7               # optional — position on the world map;
lon = -74.0              #            omit both to leave it off the map

[[resolvers]]
name = "NS1 (public)"
ip = "198.51.100.53"

# Optionally recolor the UI. Every key is optional; unset roles keep their
# defaults. Colors are ANSI names ("lightcyan"), 256-color indexes ("208"),
# or hex ("#ff8700" — needs truecolor support).
[theme]
accent   = "lightcyan"    # borders, titles, cursor, anycast sites
agree    = "lightgreen"   # answers matching the majority; fast latency
differ   = "lightmagenta" # answers disagreeing with the majority
error    = "white on lightred"
                          # ERR / SERVFAIL / NONE; slow latency. Written
                          # "<fg> on <bg>", it becomes a filled badge on the
                          # status glyph and word — legible on any background;
                          # a plain color like "lightred" drops the badge
pending  = "lightyellow"  # queries in flight; middling latency
stale    = "208"          # caches serving an answer past its own TTL
upstream = "lightblue"    # refetched but upstream still has the old data
muted    = "faint"        # labels, hints, countdowns, quiet borders —
                          # "faint" dims your terminal's default foreground;
                          # set a color if your terminal renders faint poorly
coastline = "gray"        # map/globe land outline
grid      = "244"         # globe graticule and limb
```

Une configuration invalide (mauvaise IP, clé inconnue, couleur non reconnue, sous-réseau `ecs` invalide,
`lat` sans `lon`, `replace = true` sans résolveurs) est signalée au
démarrage avec l'entrée fautive nommée.

## Notes

- Plusieurs résolveurs sont des réseaux anycast, donc le nœud qui répond est celui
  le plus proche de vous. Les réseaux qui identifient leur nœud — via NSID ou une
  requête d'identification — indiquent le site réel qui répond (`→YUL`) ; pour les
  autres, la colonne d'emplacement correspond à la région d'origine de l'opérateur.
- La liste intégrée des résolveurs se trouve dans `src/resolvers.rs` ; utilisez le fichier de configuration
  ci-dessus pour l'étendre ou la remplacer sans recompiler. Chaque entrée intégrée a été
  vérifiée pour répondre aux requêtes externes ; de nombreux résolveurs FAI bien connus (et,
  notamment, tous les grands résolveurs africains) refusent les requêtes provenant de l'extérieur de leur réseau,
  ils ne peuvent donc pas être inclus.

## Nix

Le projet fournit des sorties de flake Nix optionnelles pour les utilisateurs qui utilisent déjà Nix. Le flake compile à partir des sources.

```bash
# Latest source from default branch
nix run github:514-labs/dnsglobe

# Specific release (uses the flake at that git tag)
nix run github:514-labs/dnsglobe/v0.4.0

# Named outputs (if the flake exposes them): #latest, #source
nix run github:514-labs/dnsglobe#source

# Build / develop
nix build github:514-labs/dnsglobe
nix develop github:514-labs/dnsglobe
```

Le flake expose `packages.<system>.default`, `apps.<system>.default`, `devShells.<system>.default` et `overlays.default`.

Mettez à jour via le même flux de travail Nix que celui utilisé pour l'installation. Pour les installations de profile, exécutez `nix profile list` puis `nix profile upgrade <index-or-name>`. Pour les entrées de flake, exécutez `nix flake update <repo>` dans votre propre flake et reconstruisez.

## Devbox

Pour des environnements de développement reproductibles, utilisez Devbox :

```bash
# Install Devbox first (if not already installed)
curl -fsSL https://get.jetify.dev/devbox | bash

# Initialize the environment
devbox shell

# Build the project
devbox run build
```

Ou installez Devbox via Homebrew :

```bash
brew install jetify-com/devbox/devbox
```

---

Fait avec ❤️ par les personnes qui travaillent sur [514.ax](https://www.514.ax).
Télécharger l’outil