pingall
Utility to quickly and efficiently discover available IP addresses and their hostnames on your network. This program will always finish within a small timeout, much faster than nmap 192.168.1.*.
- Quickly find IPv4 and IPv6 addresses and hostnames on your network.
- Populate DNS/mDNS tables automatically.
Usage
Ping all available IP addresses:
Ping only Wi-Fi addresses on wlan0, don't resolve hostnames:
Scan only one address family:
Installation
Cargo
Arch Linux / AUR
macOS / Homebrew
Windows / Scoop
scoop bucket add fierthraix https://github.com/Fierthraix/scoop-bucket
scoop install pingall
Nix
Release Assets
https://github.com/Fierthraix/pingall/releases/latest
Details
By default, pingall scans both IPv4 and IPv6. It simultaneously pings all IPv4 addresses on your local /24 subnets with a 1 second timeout, so we can gauge who is responsive on the network. IPv6 discovery uses the scoped all-nodes multicast address (ff02::1%interface) because typical IPv6 subnets are too large to sweep. tokio is used to make it all asynchronous (only 1 thread is used).
Raw Ping
The system ping command is used by default for IPv4 sweeps. On Windows, pingall always uses the system ping command. On Unix systems, opening raw sockets requires elevated permissions. To avoid using the ping command for IPv4 sweeps, you can use the --raw-socket flag, but this will require either sudo, or running
setcap cap_net_raw+ep $(which pingall)
to give this program permission. IPv6 multicast discovery uses tiny-ping sockets on Unix and falls back to the system ping command when sockets are unavailable.
Dependencies
- cargo
- ping
- avahi-resolve on Linux (needed to resolve hostnames)
Hostname resolution uses avahi-resolve on Linux and the operating system reverse lookup APIs on Windows.