---
name: "sonar"
section: "1"
platform: "linux"
package: "xscreensaver"
version: "3.34-3"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/sonar"
---

# sonar(1)

display a sonar scope

## NAME

sonar - display a sonar scope

## SYNOPSIS

**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*\] \[-debug\]

## DESCRIPTION

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 displays 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.

## OPTIONS

*sonar* understands the following options:

- **-background *Color***

  The background Color of the screen not covered by the scope.

- **-sweep-color *Color***

  The color of the brightest part of the sweep.

- **-scope-color *Color***

  The color of the circular part of the scope.

- **-grid-color *Color***

  The color to the grid lines overlaying the scope.

- **-text-color *Color***

  The color of the text identifying bogies on the scope.

- **-ttl *integer***

  "Time to live": visible time of a Bogie. Try values between 10 (very short) and 100.

- **-font *font***

  The font used to display text on the scope.  Default "fixed".

- **-ping-timeout *int***

  The amount of time in milliseconds the program will wait for an answer to a ping.

- **-ping *hosts-or-subnets***

  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 installed setuid);

  - *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 addresses);

  - **subnet/*NN***

    to ping a different-sized local subnet: e.g., **subnet/28** would ping a 4-bit subnet (the nearest 15 addresses);

  - *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 addresses.)

  - *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

- **-team-a-name *string***

  In simulation mode, the name of team A.

- **-team-b-name *string***

  In simulation mode, the name of team B.

- **-team-a-count *int***

  In simulation mode, the number of bogies on team A.

- **-team-b-count *int***

  In simulation mode, the number of bogies on team B.

## RESOURCES

Configuration of the targets to ping is best done by setting X Resources.

- **background *(Color)***

  See option -background, above; default value is *black*.

- **sweepColor *(Color)***

  See option -sweep-color, above; default value is *#00ff00*.

- **scopeColor *(Color)***

  See option -scope-color, above; default value is *#003300*.

- **gridColor *(Color)***

  See option -grid-color, above; default value is *#00aa00*.

- **textColor *(Color)***

  See option -text-color, above; default value is *#ffff00*.

- **ttl *(integer)***

  See option -ttl, above; default value is *90* or one sweep.

- **ping *(string)***

  See option -ping, above.  If set to **default**, it will ping the contents of /etc/hosts if possible, otherwise, will run in simulation-mode.

- **font *(font)***

  See option -font, above; default value is *fixed*.

- **pingTimeout *(Integer)***

  See option -pingtimeout, above; default value is 3000.

- **teamAName *string***

  See option -team-a-name, above.  Default value is **F18**.

- **teamBName *string***

  See option -teamBName, above.  Default value is **MIG**.

- **teamACount *int***

  See option -teamACount, above.  Default value is 4.

- **teamBCount *int***

  See option -teamBCount, above.  Default value is 4.

## NOTES

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
```

## SEE ALSO

**X**(1), [**xscreensaver**(1)](/xscreensaver/1.md), [**ping**(8)](/ping/8.md)

## COPYRIGHT

Copyright © 1998 by Stephen Martin. (smartin@canada.com)

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation.  No representations are made about the suitability of this software for any purpose.  It is provided "as is" without express or  implied warranty.

## AUTHORS

Stephen Martin \<smartin@canada.com\>, 3-nov-98.

Thanks to Tom Kelly for suggesting a modular approach to the sensor amoung other things.

Thomas Bahls \<thommy@cs.tu-berlin.de\> hacked the "ttl" option, 12-jul-98.

Better subnet support and command-line processing by Jamie Zawinski, 17-Jul-00.
