PingDNS is a command-line tool for mass pinging DNS servers to measure their latency using ICMP pings. It supports scanning up to 60,000 servers efficiently with multi-threading, configurable ping parameters, and optional geolocation data retrieval via GeoIP.
- Mass ping DNS servers (hardcoded and from public-dns.info)
- Multi-threaded for high performance
- Configurable ping count, timeout, and thread count
- Geolocation support for server location data
- Outputs results to console and
dns_results.csv
-
Clone the repository:
git clone https://github.com/EdgeOfAssembly/PingDNS.git
-
Navigate to the directory:
cd PingDNS -
Build with CMake:
mkdir build && cd build cmake .. make
-
Run the tool (requires raw socket privileges):
sudo ./pingdns [options]
Note: Use sudo or set CAP_NET_RAW capability:
sudo setcap cap_net_raw+ep pingdns-
Basic scan: sudo ./pingdns
-
Scan 100 servers with 5 pings each, 500ms timeout, and 8 threads: sudo ./pingdns -n 100 -pings 5 -timeout 500 -t 8
See the man page (docs/pingdns.1) for more examples.
- libcurl
- libGeoIP
- libcap
- Install on Ubuntu: sudo apt-get install libcurl4-openssl-dev libgeoip-dev libcap-dev
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.