sonar - display a sonar scope
sonar [-ping hosts-or-subnets] [-background color] [-sweep-color color]
[-low-color color] [-scope-color color] [-grid-color color]
[-text-color color] [-ttl integer] [-font font] [-ping-timeout int]
[-team-a-name string] [-team-b-name string] [-team-a-count int] [-team-
b-count int] [-no-dns] [-no-times] [-debug]
The sonar program displays a sonar scope on the computer’s screen.
This scope polls a sensor as the sweep goes around the scope and dis-
plays what it finds as bogies on the screen. The program is designed
to support different modes representing different types of sensors.
Currently the only implemented sensors are a simulator, and a network
ping function that pings hosts and plots the results on the scope.
sonar understands the following options:
The background Color of the screen not covered by the scope.
The color of the brightest part of the sweep.
The color of the circular part of the scope.
The color to the grid lines overlaying the scope.
The color of the text identifying bogies on the scope.
"Time to live": visible time of a Bogie. Try values between 10
(very short) and 100.
The font used to display text on the scope. Default "fixed".
The amount of time in milliseconds the program will wait for an
answer to a ping.
The list of things to ping, separated by commas or spaces.
Elements of this list may be:
simulation to run in simulation mode, instead of pinging real
hosts (this is the default if the program is not
hostname to ping the given host;
A.B.C.D to ping the given IP address;
subnet to ping the local class C subnet (the nearest 255
subnet/NN to ping a different-sized local subnet: e.g., sub-
net/28 would ping a 4-bit subnet (the nearest 15
A.B.C.D/NN to ping an arbitrary other subnet: the IP address
specifies the base address, and the part after the
slash is how wide the subnet is. Typical values
are /24 (for 255 addresses) and /28 (for 15
filename to ping the hosts listed in the given file. This
file can be in the format used by /etc/hosts, or it
can be any file that has host names as the first
element on each line. If you use ssh, try this:
sonar -ping $HOME/.ssh/known_hosts
-no-dns Do not attempt to resolve IP addresses to hostnames.
Do not display ping times beneath the host names.
In simulation mode, the name of team A.
In simulation mode, the name of team B.
In simulation mode, the number of bogies on team A.
In simulation mode, the number of bogies on team B.
Configuration of the targets to ping is best done by setting X
See option -background, above; default value is black.
See option -sweep-color, above; default value is #00ff00.
See option -scope-color, above; default value is #003300.
See option -grid-color, above; default value is #00aa00.
See option -text-color, above; default value is #ffff00.
See option -ttl, above; default value is 90 or one sweep.
See option -ping, above. If set to default, it will ping the
contents of /etc/hosts if possible, otherwise, will run in sim-
See option -font, above; default value is fixed.
See option -pingtimeout, above; default value is 3000.
See option -team-a-name, above. Default value is F18.
See option -teamBName, above. Default value is MIG.
See option -teamACount, above. Default value is 4.
See option -teamBCount, above. Default value is 4.
In order to use the ping sensor, this program must be installed as
setuid root, so that it can create an ICMP socket. Root privileges are
disavowed shortly after startup (just after connecting to the X server
and reading the resource database) so this is believed to be a safe
thing to do, but it is usually recommended that you have as few setuid
programs around as possible, on general principles.
chown root.root sonar
chmod u+s sonar
In ping-mode, the display is a logarithmic scale, calibrated so that
the three rings represent ping times of approximately 2.5, 70 and 2,000
This means that if any the hosts you are pinging take longer than 2
seconds to respond, they won’t show up; and if you are pinging several
hosts with very fast response times, they will all appear close to the
center of the screen (making their names hard to read.)
X(1), xscreensaver(1), ping(8)
Copyright © 1998 by Stephen Martin. <firstname.lastname@example.org> Copyright ©
2000-2004 by Jamie Zawinski <email@example.com>
Permission to use, copy, modify, distribute, and sell this software and
its documentation for any purpose is hereby granted without fee, pro-
vided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in sup-
porting documentation. No representations are made about the suitabil-
ity of this software for any purpose. It is provided "as is" without
express or implied warranty.
Stephen Martin <firstname.lastname@example.org>, 3-nov-98.
Thanks to Tom Kelly for suggesting a modular approach to the sensor
amoung other things.
Thomas Bahls <email@example.com> hacked the "ttl" option,
Better subnet support and command-line processing by Jamie Zawinski,
X Version 11 3-Nov-98 Sonar(1)
Man(1) output converted with